我有一个像这样的函数调用:
await someFunction(foo);
someFunction
定义如下:
const someFunction = foo => {
return new Promise((resolve, reject) => {
if (foo) {
return resolve(someOtherPromise());
}
reject();
}
}
这是有效的代码吗?我已经测试过了,似乎没问题。
如果 foo
为 true
,await someFunction()
将转换为 await someOtherPromise()
是否正确即它会继续等待 someOtherPromise
解决吗?
最佳答案
是的,它是有效的代码并且有效 by resolving with a promise ,但闻起来像 Promise
constructor antipattern .相反,我建议写
function someFunction(foo) {
if (foo)
return someOtherPromise();
else
return Promise.reject();
}
或
async function someFunction(foo) {
if (foo)
return someOtherPromise();
else
throw;
}
(最好抛出一个带有消息的 new Error
,而不是 undefined
)
关于javascript - 在 resolve 中返回另一个异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64154434/