如何解决将 vanilla JS 与 async/await 和 settimeout 与 XHR JSON 数据相结合
因此,我需要使用 XMLHttpRequest 从 .NET 核心 API 端点检索 json 对象,并控制台记录每个数据,每个控制台日志的等待时间为特定毫秒。我需要使用异步等待来实现它们。 我怎样才能做到这一点? 这是我检索数据的承诺:
function getDataByPromise(method,url) {
return new Promise((resolve,reject) => {
let xhr = new XMLHttpRequest();
xhr.open(method,url);
xhr.send();
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,statusText: xhr.statusText,});
}
};
xhr.onerror = function () {
reject({
status: this.status,});
};
});
}
getDataByPromise(method,url)
.then(function (response) {
console.log("By Promise: ");
console.log(response);
})
.catch(function (err) {
console.log("There is an error retrieving data",err.statusText);
});
这是一个典型的 XHR 检索数据
function getDataByXHR(method,url) {
let xhr = new XMLHttpRequest();
xhr.open(method,url,true);
xhr.onload = function () {
console.log(xhr.response);
};
xhr.onerror = function () {
console.error("An error occur getting the XMLHttpRequest");
};
xhr.send();
}
getDataByXHR(method,url);
这是使用上述 XHR 函数检索数据的 Async Await
async function getDataByAA() {
try {
let response = await getDataByXHR(method,url);
} catch (error) {
console.log(error);
}
}
getDataByAA().catch((e) => console.error(e));
我想有一个类似 sleep 函数的东西,它会返回一个像这样的 promise 并且有一个 for 循环(不知道为什么,但人们似乎建议不要将 forEach 与 async/await 一起使用)来索引所有对象
const wait = (ms) => new Promise(resolve => setTimeout(resolve,ms));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。