gpt4 book ai didi

javascript - 从对象创建异步 waterfall

转载 作者:太空宇宙 更新时间:2023-11-04 03:24:19 27 4
gpt4 key购买 nike

假设我有一个具有异步方法的对象数组:

[
{
partOne: function(input) {
// Do something async
},
partTwo: function(result) {
// Do something w/ result of partOne
}
},
{
partOne: function(resultOfPrevious) {
// Do something async
},
partTwo: function(result) {
// Do something w/ result of partOne
}
},
{
partOne: function(resultOfPrevious) {
// Do something async
},
partTwo: function(result) {
// Do something w/ result of partOne
}
}
]

我想用我的输入执行第一个对象的partOne,将结果(异步)传递给partTwo回调,然后将partTwo的结果作为输入传递给下一个对象的partOne,依此类推。该数组可以是一个或多个对象。我想知道执行此类代码的最佳模式是什么?

有点类似于async.js的 waterfall 方法:https://caolan.github.io/async/docs.html#waterfall ,但我想知道如何在没有库的情况下使用更清晰的代码来做到这一点?

不确定 async/await 是否有帮助?

最佳答案

使用async/await的另一种选项,无需收集对数组的每个回调:

async function processWaterfallObject (data, input) {
let result = input

for (let entry of data) {
result = await entry.partOne(result)
result = await entry.partTwo(result)
}

return result
}

这假设 data 数组中的函数是 async 或返回 Promise

<小时/> every major browser 目前支持

async/await7.6.0 起可在 node 中使用。

关于javascript - 从对象创建异步 waterfall ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46582728/

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