我正在调用的API,然后试图呈现数据的图表之前过早地多次拒绝退换:承诺是解决
function getFromAPI(url) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.onreadystatechange =() => {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log("Resolving!");
jsonData = JSON.parse(xhr.responseText);
resolve(jsonData);
} else {
console.log("Rejecting!");
reject();
}
}
xhr.open("GET", url, true);
xhr.send();
});
}
getFromAPI(API_URL).then((jsonData) => { drawChart(jsonData) });
当我打开该脚本,我得到Rejecting!
在三次它解决之前的控制台。该reject
也打破了.then
部分(即不图我!)
我拿去onreadstatechange
事件被解雇前几次我们到readyState == 4
和status == 200
。到底发生了什么,我如何避免过早拒绝承诺?
因为有readyState的的1,2和3 –