我想編寫一個給定函數列表的函數,它將摺疊到該列表中,逐漸將每個閉包的結果傳入下一個函數。使用回調函數的高階文件夾函數
在列表中的功能函數簽名會是這樣的(僞代碼):
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