gpt4 book ai didi

javascript - 减少 Promise.all?

转载 作者:行者123 更新时间:2023-11-29 23:17:52 29 4
gpt4 key购买 nike

我想多次调用我的 api,然后只返回错误的对象(这里是 workers)

您如何看待此实现? (我不喜欢 .then(()=> false 但即使使用 reduce 我也没有找到更好的实现方式)

我想避免在 Promise.all 之后进行过滤

谢谢

updateWorkersStatusOnMissions: (workersOnMissions, apiService) => {
const updateWorkerStatusOnMissionPromises = workersOnMissions
.map(workerOnMission =>
apiService.put('missions', formatWorkerOnMission(workerOnMission))
.then(() => false)
.catch(() => formatWorkerInError(workerOnMission))
)
return Promise
.all(updateWorkerStatusOnMissionPromises)
.then(filter(Boolean))
},

最佳答案

我通常做的是在结果周围引入某种“框”,它可以告诉我从 promise 中得到的结果“种类”。 promise 总是会返回一个值给你,但是根据提供它的位置 then(onSuccess, onFail) 类型是不同的。

const into = type => val => ({ type, val })

const arrayOfstuff = [];

const arrayOfPromises = arrayOfstuff.map(stuff => makePromise(stuff)
.then(into("success"), into("error")))

const successFullStruff = Promise.all(arrayOfPromises)
.then(filter(result => result.type === "success"))

const failedStuff = Promise.all(arrayOfPromises)
.then(filter(result => result.type === "error"))

关于javascript - 减少 Promise.all?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52058529/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com