【发布时间】:2022-05-02 23:50:47
【问题描述】:
似乎我无法使用异步函数作为 Array.find() 的第一个参数。我不明白为什么这段代码不能工作,到底发生了什么?
function returnsPromise() {
return new Promise(resolve => resolve("done"));
}
async function findThing() {
const promiseReturn = await returnsPromise();
return promiseReturn;
}
async function run() {
const arr = [1, 2];
const found = await arr.find(async thing => {
const ret = await findThing();
console.log("runs once", thing);
return false;
});
console.log("doesn't wait");
}
run();
【问题讨论】:
-
您已经标记了谓词
async,但这并不意味着Array.find()是异步的。 -
好的,简明扼要,谢谢。
-
@obermillerk 那行不通。这不仅在语法上不正确,
find也不是异步的,所以在任何情况下你都不能“等待”它完成。
标签: javascript