我想知道async / await在以下两个“超基本”示例中的行为是否相同:
async function blah1() {
return await foo.bar().then('Done');
}
是这样
async function blah2() {
return blah3(foo.bar());
}
async function blah3(fn) {
return await fn.then('Done');
}
还是有一些重要的区别?
答案 0 :(得分:2)
async function blah1() {
return await foo.bar().then('Done');
}
blah1()
调用foo.bar
,返回一个承诺,并向其中添加一个then
。
返回的结果是诺言。
async function blah2() {
return blah3(foo.bar());
}
async function blah3(fn) {
return await fn.then('Done');
}
blah2()
调用foo.bar
,返回一个承诺,该承诺传递给blah3
,后者添加一个then
。
由此产生的承诺从blah3
返回到blah2
,并由此返回给调用者。
我会说没有有意义的行为差异。