javascript中的简单异步函数

javascript中的简单异步函数,javascript,async-await,Javascript,Async Await,我正在使用async/await和下面的代码,在响应常量中的setTimeout在5秒后完成之前,响应不应该为空或null吗?响应不应该返回xyz而不是1吗 async函数测试(){ 试一试{ const response=等待设置超时( 函数(){ 常量obj={}; obj.text=“xyz”; log('应在5秒后记录控制台日志') 返回obj; }, 5000) 如果(答复){ log(`response is${response}`) log(`response.text是${r

我正在使用async/await和下面的代码,在响应常量中的setTimeout在5秒后完成之前,响应不应该为空或null吗?响应不应该返回xyz而不是1吗

async函数测试(){
试一试{
const response=等待设置超时(
函数(){
常量obj={};
obj.text=“xyz”;
log('应在5秒后记录控制台日志')
返回obj;
}, 
5000)
如果(答复){
log(`response is${response}`)
log(`response.text是${response.text}`)
}
} 
捕捉(错误){
console.log(错误)
}
}

test()您必须承诺等待setTimeout()

async函数测试(){
试一试{
const response=等待新承诺((解决)=>{
设置超时(
函数(){
常量obj={};
obj.text=“xyz”;
log('应在5秒后记录控制台日志')
返回解析(obj);
},
5000)
});
如果(答复){
log(`response is${response}`)
log(`response.text是${response.text}`)
}
}
捕捉(错误){
console.log(错误)
}
}

test()您必须承诺等待setTimeout()

async函数测试(){
试一试{
const response=等待新承诺((解决)=>{
设置超时(
函数(){
常量obj={};
obj.text=“xyz”;
log('应在5秒后记录控制台日志')
返回解析(obj);
},
5000)
});
如果(答复){
log(`response is${response}`)
log(`response.text是${response.text}`)
}
}
捕捉(错误){
console.log(错误)
}
}

test()要使代码按照预期工作,需要将设置的超时封装在承诺中。检查代码段。在不使用promise包装它的情况下,setTimeout立即返回值,即计时器的ID值

async函数测试(){
试一试{
const response=等待新承诺(函数(解析、拒绝){
设置超时(
函数(){
常量obj={};
obj.text=“xyz”;
log('应在5秒后记录控制台日志')
解决(obj);
},
5000)
})
如果(答复){
log(`response is${response}`)
log(`response.text是${response.text}`)
}
}捕捉(错误){
console.log(错误)
}
}

test()要使代码按照预期工作,需要将设置的超时封装在承诺中。检查代码段。在不使用promise包装它的情况下,setTimeout立即返回值,即计时器的ID值

async函数测试(){
试一试{
const response=等待新承诺(函数(解析、拒绝){
设置超时(
函数(){
常量obj={};
obj.text=“xyz”;
log('应在5秒后记录控制台日志')
解决(obj);
},
5000)
})
如果(答复){
log(`response is${response}`)
log(`response.text是${response.text}`)
}
}捕捉(错误){
console.log(错误)
}
}

test()
我认为async的整个要点比promise更容易使用?使用
wait
操作符来等待
promise
。您必须在
async
函数中使用
await
。我认为async的整个要点比promise更容易使用?
await
操作符用于等待
promise
。您必须在
async
函数中使用
wait
。我认为异步的整个要点比promise更容易使用?是的,但是setTimeout不会返回承诺。它返回计时器的ID值。检查如何判断哪些内容会或不会返回其自身的承诺?控制台记录返回值。如果它是一个承诺,它将打印承诺。或者,检查返回值是否具有then属性。如果是的话,那就是一个承诺我认为整个异步点的使用比承诺更干净?是的,但是setTimeout不返回承诺。它返回计时器的ID值。检查如何判断哪些内容会或不会返回其自身的承诺?控制台记录返回值。如果它是一个承诺,它将打印承诺。或者,检查返回值是否具有then属性。如果是这样,那就是承诺