我正在服务器端试验SWIFT,遇到了一个问题,我在最新版本的Xcode上也看到了这个问题.

在异步任务块中执行printdebugPrint操作时,不会显示输出:

@main
 18 struct PostgresTest {
 19   static func main() {
 20     print("Test print1")
 21     Task {
 22         print("Test print2")
 23 
 24         await TestPostgres.connectDisconnect()
 25     }
 26   }
 27 }

对于上面的代码,我可以看到"测试打印1"出现在终端上,但是,第二个打印的输出没有出现.

我做错了什么?

推荐答案

您的程序将在任务完成之前终止.你需要等待任务的到来.例如:

@main
struct PostgresTest {
    static func main() async {
        print("Test print1")
        await Task {
            print("Test print2")

            await TestPostgres.connectDisconnect()
        }.value
    }
}

Swift相关问答推荐

阴影动画的动画不流畅

它是RxSwift中直接用于可扩展视图的有效的可扩展BehaviorRelay值?

在MacOS上检测键盘是否有Globe键

从任务中打印

SwiftUI,如何更改具有多个按钮和一个布尔条件的一个按钮标签

字符串和整数格式的for循环,帮忙!

为什么我在我的 Swift iOS 应用程序项目中收到 Xcode 中的错误消息无法识别的 Select 器发送到类?

使第二个视图变灰 SwiftUI

从 Int 到 String 的属性更改引发 SwiftUI 视图不更新

LeetCode 249. 分组移位字符串

如何在 SwiftUI 中将图像传递到 2 个视图

SwiftUI 4 列表初始化程序在 iOS 中不可用

如何让 UIKit 挤压你的视图,使其适合屏幕

如何快速制作虚线?

NSFontAttributeName 已更改为 String

Swift:在子类中覆盖 == 导致仅在超类中调用 ==

否定 #available 语句

Swift 中的 PageViewController 当前页面索引

自定义 MKAnnotation 标注视图?

类型myViewController不符合 Swift 中的协议 UIPIckerDataSource