在 Swift 中创建异步操作

Create asynchronous Action in Swift

我一直在尝试按照一些示例为 openwhisk 构建操作。不幸的是,大多数示例都是用 JS 编写的,所以我不得不在 Swift 中重写它们。在我想编写异步操作之前,这非常有效。

我遇到的第一个问题是GCD。 Openwhisks Swift-实现在 linux 上运行,因此为了使用 GCD,需要导入 libdispatch 库。当然,我无法修改 openwhisk 在其 Swift 运行时加载的模块。最终我偶然发现了 IBM Bluemix Sandbox,在那里我了解到有一个 Dispatch 模块应该提供对类似 GCD 的功能的访问。然而,虽然我可以创建队列、调度时间、闭包等,但我不知道如何实际调度它。 dispatch_async、dispatch_after等都是未知符号。

虽然我仍然无法解决第一个问题,但我仍在使用 Whisk API。在 JS 中,有一个 whisk.async() 和 whisk.done() 命令。在 Swift 中没有。

此致, 维克多

正如您所指出的,OpenWhisk 运行s Swift 操作在 Linux 容器中。 Linux 对 Foundationlibdispatch 的支持仍然是部分的,可能至少再过几个月。 OpenWhisk定期更新用于运行动作的Swift2.2的快照版本,但我们本质上是依赖于Swift对Linux的一般进度。

我们尚未完成 Swift 等同于 JavaScript whisk API 的设计。结构不一定会跨语言一对一映射。例如,异步操作可能依赖于 Swift.

中的 libdispatch 构造