関数のリストを指定してそのリストを折りたたみ、各クロージャの結果を次の関数に徐々に渡す関数を記述したいと思います。コールバックを使用した上位のフォルダ関数
リスト内の関数の関数シグネチャは(擬似コード)のようになります。
typealias DoneClosure = (Dictionary) -> Void
typealias Middleware = (Dictionary, DoneClosure) -> Void
私はタイプMiddleware
のリストを持っているでしょうし、私は左から右に削減したい、全体の折りたたみリストを作成し、各クロージャの結果を次のクロージャに渡します。
let middleware1 = { acc, done in
// do something with acc, modify it
done(acc)
}
各機能はこれと似ていますが、何らかの方法でアキュムレータを変更し、その結果をdoneまたは次の関数に渡します。
私が探しているのは、コールバックを使用してリスト全体を折り畳み、非同期に処理できる再帰関数です。誰か助けてくれますか? (言語は無関係ですが、JSまたはSwiftが優先されます)。
は、既に持っていますか? – dandavis
私はこの約束をどこにも書いていません。残念なことに、 – barndog
あなたはコードのいくつかの行で基本的な約束事を書くことができます。パターンは重要です。具体的には、 'Promise()'と ' Promise.all() 'など何か_like_ – dandavis