0

文字列を指定して処理を行うアプリがありますが、これは 2Task秒で完了します。この間、私はアニメーションを表示しています。これらTaskが完了したら、アニメーションを非表示にする必要があります。以下のコードは機能しますが、見栄えがよくありません。これを行うためのより良い方法があると思いますか?

let firTask = Task {
    /* Slow-running code */
}

let airportTask = Task {
    /* Even more slow-running code */
}

Task {
    _ = await firTask.result
    _ = await airportTask.result
    
    self.isVerifyingRoute = false
}
4

2 に答える 2

2

拡張機能を使用して、タスクを破棄可能にします。おそらく次のようなものです:

extension Task {
    @discardableResult
    func finish() async -> Result<Success, Failure>  {
        await self.result
    }
}

次に、読み込みタスクを次のように変更できます。

Task {
    defer { self.isVerifyingRoute = false }
    await firTask.finish()
    await airportTask.finish()
}
于 2021-08-10T12:19:32.337 に答える