我正在使用 async/await 并使用下面的代码,在响应 const 中的 setTimeout 在 5 秒后完成之前,响应不应该为空或 null 吗?响应不应该返回 xyz 而不是 1 吗?
async function test() {
try {
const response = await setTimeout(
function() {
const obj = {};
obj.text = "xyz";
console.log('should console log after 5 seconds')
return obj;
},
5000)
if (response) {
console.log(`response is ${response}`)
console.log(`response.text is ${response.text}`)
}
}
catch(err) {
console.log(err)
}
}
test();
最佳答案
你必须放置一个 Promise 来等待 setTimeout()。
async function test() {
try {
const response = await new Promise((resolve) => {
setTimeout(
function() {
const obj = {};
obj.text = "xyz";
console.log('should console log after 5 seconds')
return resolve(obj);
},
5000)
});
if (response) {
console.log(`response is ${response}`)
console.log(`response.text is ${response.text}`)
}
}
catch(err) {
console.log(err)
}
}
test();
关于javascript - JavaScript 中的简单异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833668/