我有一个包含10多个数据对象的数组。
我想检查一个checkData
承诺是否使用提供的数据参数获取成功数据。我不关心哪一个是成功的,我只想检查一下dataSet是否成功。
是否可以在循环或地图功能中使用Promise.race,如下所示?
return Promise.race(
dataSet.map(item => {
checkData(item) // checkData return a Promise
})
)
.then(...)
.catch(...)
我想这样的事情可以完成,如果我将promises数组传递给race方法,它可以工作,但是我想这样做而不会粘贴10次(有时候更多)返回promise的函数。
非常感谢您的帮助。
答案 0 :(得分:2)
Map函数返回新数组。您必须在map函数中返回元素。如果checkData返回promises,你就可以在map函数中返回它
然后你应该有这个:
return Promise.race(
dataSet.map(item => {
return checkData(item) // checkData return a Promise
}));