我正在尝试绕过no-return-await规则。
请考虑以下代码段:
AKAZE/ORB/SURF
每个异步函数都返回一个诺言,因此const a = async () => {
return 5;
};
const b1 = async () => {
return a();
};
const b2 = async () => {
return await a();
};
const wut = async () => {
console.log(await b1());
console.log(await b2());
};
wut();
返回一个诺言。在这种情况下,我希望a()
也会包装一个Promise,因此结果将是嵌套的Promise。像b1()
中那样,检索值将需要两次等待,但这似乎并不是必需的,因为b2
都正确返回了值。这是怎么回事?嵌套的promise是否递归解决?我迷路了。感谢您的指导和解释!
答案 0 :(得分:1)
这是诺言的一般行为方式,并不特定于async / await语法。
如果一个承诺被另一个承诺解决,那么它实际上会变成那个承诺,而不是立即解决。