我生成經由succsss
追加異步序列SWIT反應3
它獲取的響應需要追加或順序將它們連接起來的功能從使用dataTask
並返回給函數的API檢索數據的斷續器,但是我無法完成。
這是我試過的,都失敗了,因爲最後一行打印行在單個ticker成功調用返回之前執行。
func getTicker() {
var tickerText = ""
tickerText += dataRequestnew("https://api-path-here/1") { success in return "First-item: \(success)" }
tickerText += dataRequestnew("https://api-path-here/2") { success in return " | Second-item: \(success)" }
print(tickerText)
}
或者
var tickerText = ""
func getTicker() {
dataRequestnew("https://api-path-here/1") { success in
self.tickerText += "First-item: \(success)"
print(self.tickerText)
}
dataRequestnew("https://api-path-here/2") { success in
self.tickerText += " | Second-item: \(success)"
print(self.tickerText)
}
print(self.tickerText)
}
在第二個例子,成功的個人股票打印,但不是最後一個,它僅返回默認值。
問題
我怎樣才能使序列代碼的運行,或者至少確保最後打印的工作原理一旦所有的tickerText調用成功返回。
謝謝。
這個交叉我的腦海裏,但它不是實踐,如果我有很多項目恕我直言,請任何其他建議? –
其實,在我看來,最好的選擇是使用ReactiveX https://github.com/ReactiveX/RxSwift。 您可以將您的請求轉換爲數據流,並將它們平面映射爲末尾有單個連接的響應。你可以找到一個清晰的例子來說明如何在這裏實現它:https://stackoverflow.com/questions/40919920/proper-usage-of-rxswift-to-chain-requests-flatmap-or-something-else –