美文网首页Swift
'async' call in a function that

'async' call in a function that

作者: 胖虎不会飘 | 来源:发表于2021-12-22 17:37 被阅读0次

    在Swift5.5中使用async/await时,调用async函数的时候,出现了一个错误。

    'async' call in a function that does not support concurrency
    

    我的代码如下:

    public func concurrentCode(n: Int) async -> Int  {
           let number = n * 2
            do {
                try await Task.sleep(nanoseconds: 2 * 1_000_000_000)
            } catch  {
                print("error:\(error)")
            }
            return number
        }
        
       let con = Concurrent()
    
       let number =  await con.concurrentCode(n: 10)
         print("result:\(number)")
    

    原因是:await concurrentCode的方法必须在async函数中进行调用。即调用者必须是异步的。

    将代码改成如下即可:

     Task {
            let con = Concurrent()
            let number =  await con.concurrentCode(n: 10)
            print("result:\(number)")
      }
    

    得到输出参数是:

    result:20
    

    相关文章

      网友评论

        本文标题:'async' call in a function that

        本文链接:https://www.haomeiwen.com/subject/ikocjltx.html