sách gpt4 ai đã đi

node.js + yêu cầu => node.js + bluebird + yêu cầu

In lại Tác giả: Data Little Sun Thời gian cập nhật: 2023-10-29 05:51:58 37 4
mua khóa gpt4 Nike

Tôi đang cố gắng hiểu cách viết mã bằng cách sử dụng lời hứa. Vui lòng kiểm tra mã của tôi. Có đúng như vậy không?

Node.js + Yêu cầu:

yêu cầu(url, hàm (lỗi, phản hồi, nội dung) {
nếu (!error && response.statusCode == 200) {
var jsonpData = thân;
biến json;
thử {
json = JSON.parse(jsonpData);
} bắt (e) {
var startPos = jsonpData.indexOf('({');
var endPos = jsonpData.indexOf('})');
var jsonString = jsonpData.substring(startPos+1, endPos+1);
json = JSON.parse(jsonString);
}
gọi lại(null, json);
} khác {
gọi lại(lỗi);
}
});

Node.js + bluebird + yêu cầu:

yêu cầu.getAsync(url)
.spread(hàm(phản hồi, nội dung) {trả về nội dung;})
.sau đó(JSON.phân tích cú pháp)
.sau đó(hàm(json){console.log(json)})
.catch(hàm(e){console.error(e)});

Tôi có thể kiểm tra trạng thái phản hồi như thế nào? Tôi có nên sử dụng if trong ví dụ đầu tiên hay một cái gì đó thú vị hơn không?

1 Câu trả lời

Bạn có thể chỉ cần kiểm tra lây lan Trong chương trình xử lý Mã phản hồi.trạng thái Nếu không phải là 200 thì ném một Lỗi,Vì thếnắm lấy Người xử lý sẽ xử lý việc đó. Bạn có thể đạt được điều đó như thế này

var request = require('bluebird').promisifyAll(require('request'), {multiArgs: true});

request.getAsync(url).spread(hàm (phản hồi, nội dung) {
nếu (response.statusCode != 200)
throw new Error('Nỗ lực không thành công. Mã: ' + response.statusCode);
trả về JSON.parse(body);
}).sau đó(console.log).catch(console.error);

Nếu bạn để ý, chúng tôi bắt đầu lây lan Trình xử lý trả về JSON đã phân tích cú pháp vì JSON.phân tích cú pháp không phải là một hàm bất đồng bộ, vì vậy chúng ta không cần phải thực hiện nó trong một hàm riêng biệt sau đó Trong quá trình xử lý.

Liên quan đến javascript - node.js + requests => node.js + bluebird + requests, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31098009/

37 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com