我想连接mongoDb并异步执行代码。
async function test() {
let task = asyncTask() //return a promise
//function still running
await task
//code executed only if task is resolved
}
使用这样的等待是正确的吗?
答案 0 :(得分:5)
是的,如果您将await与异步函数一起使用,则代码将一直阻塞,直到承诺已解决或失败为止。您应该将try块包装在try catch中以处理任何错误。
async function test() {
let task = asyncTask()
//function still running
try {
await task
//code executed only if task is resolved
} catch (err){
//Something went wrong
throw new Error(err);
}
}
使用async / await具有与promise相同的功能,但只是提供了一种更同步的代码编写方式。
如果您希望按照承诺重写代码,则它看起来像:
function test() {
myPromise('some arguments')
.then(result => console.log(`Task completed: ${result}`);)
.catch(err => console.error(err));
}