我想编写一个给定函数列表的函数,它将折叠到该列表中,逐渐将每个闭包的结果传入下一个函数。使用回调函数的高阶文件夹函数
在列表中的功能函数签名会是这样的(伪代码):
typealias DoneClosure = (Dictionary) -> Void
typealias Middleware = (Dictionary, DoneClosure) -> Void
我会Middleware
类型的列表,我想,以减少由左到右,跨越折列表并将每个闭包的结果传递给下一个闭包。
let middleware1 = { acc, done in
// do something with acc, modify it
done(acc)
}
每个功能将类似于此,他们会修改累加器以某种方式,然后传递结果到完成或下一个功能。
我在寻找的是一个递归函数,它可以使用回调在列表中折叠,因此可以处理异步。谁能帮我吗? (语言无关紧要,但首选JS或Swift)。
这是相同的形状承诺已经,难道他们为你工作? – dandavis
我正在为swift编写这个承诺并不是标准的承诺 – barndog
您可以使用几行代码编写一个基本承诺polyfill,该模式是重要的,特别是您需要重新创建'Promise()'和' Promise.all()'或其他_like_那 – dandavis