为什么使用await
需要将外部函数声明为async
?
例如,为什么这个mongoose语句需要它所在的函数返回一个promise?
async function middleware(hostname, done) {
try {
let team = await Teams.findOne({ hostnames: hostname.toLowerCase() }).exec();
done(null, team);
} catch (err) { done(err); }
}
我看到运行时/转译器将团队承诺解析为其值并异步信号"抛出"拒绝的承诺。
但是try/catch“捕获”那些被拒绝的承诺,那么为什么async和await紧密耦合呢?
async
关键字有什么关系? - Bergi