我有一个相当奇怪的问题。我希望找到满足条件的数组的第一个元素,但 find 函数必须标记为异步,因为执行搜索需要一个承诺。
请下面的代码只是一个示例。没有显示执行异步搜索的实际代码。但是下面的内容与我打算在 find 函数中做的完全相似
这是下面的示例代码
async testForVideo() {
let media=["sampleMedia.png"];
let video = media.find(async (x) => await x.includes(".mp4"));
console.log(`Retrived Video=${video}`);
}
最重要的是,我不断得到的回应是这样的
Retrived Video=sampleMedia.png
这太奇怪了。我期待undefined
正确的结果,为什么它返回一个错误的值呢?
我期待
Retrived Video=undefined
任何关于为什么会这样的想法将不胜感激。
谢谢你。
find
不支持async
回调,因此在您的情况下,回调将始终返回一个trueish
用于该find
方法的承诺,因此它将返回数组的第一个元素。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句