Tôi vừa mới bắt đầu tìm hiểu các Fetch API: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_FetchAPI tìm nạp JavaScript - Tại sao response.json() trả về một đối tượng lời hứa (thay vì JSON)?
Dưới đây là một đoạn mã mà tôi đã viết để tinker xung quanh với nó:
fetch('http://swapi.co/api/people/1')
.then(function(response) {
var json = response.json();
console.log(json);
// Expected : { "name": "Luke Skywalker","height": "1.72 m", ... }
// Get : Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
});
tôi dự kiến sẽ có để có được một đối tượng JSON ngoài phản ứng .json().
Tương tự như những gì bạn nhận được khi sử dụng JSON.parse().
Thay vào đó, tôi nhận được một đối tượng lời hứa.
Nếu tôi mở rộng chuỗi lời hứa như đưa ra ở đây ...
return response.json().then(function(json) {
// process your JSON further
});
... sau đó nó hoạt động: Trong đó phương pháp của lời hứa sau nó xuất hiện như json.
Tại sao tôi không thể truy xuất dữ liệu JSON trong() của lời hứa đầu tiên?
Có ai vui lòng giải thích những gì đang xảy ra ở đây không?
Tôi thực sự đánh giá cao điều đó.
Điều mà hầu hết mọi người đang thất bại trong việc đề cập đến là bằng cách giải quyết càng sớm càng tốt để tiêu đề, bạn có thể bắt đầu để làm những việc với thông tin đó. Giả sử nếu bạn nhận được 400 và một bức tường văn bản khổng lồ (không chắc chắn lý do tại sao đó là một điều), nhưng bạn có thể ngay lập tức thử một cuộc gọi dự phòng hoặc xử lý nó, thay vì lãng phí thời gian để có được toàn bộ nội dung phản hồi. – 1mike12