连续运行 3 个函数,每个函数在前一个函数完成时运行

问题描述 投票:0回答:1

我正在尝试连续运行 3 个函数,每个函数在下一个函数开始之前完成。 下面的代码工作正常,但我收到三个警告 1)“try”表达式中没有调用抛出函数 2)“await”表达式中没有发生“异步”操作 3)“[()]”类型的表达式未使用。 警告显示在这一行“尝试等待 [一,二,三]”

关于正确编码且不收到这些警告的方法有什么建议吗?

Task {
        let one: () = await func1()
        let two: ()  = await func2()
        let three: ()  = await func3()
        try await [one, two, three]
      }

 func func1() async {
...
 }

func func2() async {
 ...
 }

func func3() async {
 ...
 }

这些函数本质上是从单独的外部源解码 JSON 数据,然后对结果进行计算,因此每次解码在下一次解码开始之前进行非常重要

swift async-await concurrency
1个回答
0
投票

很简单:

Task {
    await func1()
    await func2()
    await func3()
}
© www.soinside.com 2019 - 2024. All rights reserved.