1

我一直在尝试遵循一些示例来为 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 中没有。

问候,维克多

4

1 回答 1

1

正如您所指出的,OpenWhisk 在 Linux 容器中运行 Swift 操作。Linux 对两者的支持Foundation仍然libdispatch是部分的,可能至少还有几个月。OpenWhisk 会定期更新用于运行操作的 Swift 2.2 的快照版本,但我们基本上依赖于 Swift 在 Linux 上的总体进展。

我们还没有最终确定与 JavaScript whiskAPI 等效的 Swift 的设计。构造不一定会在语言之间一对一地映射。例如,异步操作很可能依赖libdispatch于 Swift 中的构造。

于 2016-03-14T05:03:24.907 回答