前提・実現したいこと
RXSwiftで複数のAPI通信を並列で実行したいと考えていますが、
やり方がわからず教えてください。
RXSwift初心者で、同期非同期の管理のみをRXSwiftで行いたいと思っています。
可能なのでしょうか?
現在書かれているソースは以下となります。
該当のソースコード
let queue = DispatchQueue.global(qos: .default) queue.async { // API実行 self.getAPIResult() DispatchQueue.main.async { ///通信完了後の処理 } } func getAPIResult() { //キャンセルチェック guard operationQueue == nil else { return } operationQueue = OperationQueue() let blockOperation = BlockOperation() let currentQueue = operationQueue let dispatchGroup = DispatchGroup() var list: [String] = ["1","2","3"] // リストがある分実行する list.forEach { (value) in //非同期処理を一括管理させる blockOperation.addExecutionBlock { //キャンセルチェック guard !blockOperation.isCancelled else { return } // リストがある分API通信をここで行う self.getResult(operation: blockOperation) } } // 全て完了した時の処理(キャンセルした時も呼ばれる) blockOperation.completionBlock = { // 省略 } // 実行開始 operationQueue?.addOperation(blockOperation) }
あなたの回答
tips
プレビュー