在Swift中创建异步操作

在Swift中创建异步操作,swift,asynchronous,grand-central-dispatch,openwhisk,Swift,Asynchronous,Grand Central Dispatch,Openwhisk,我一直在尝试按照一些示例为openwhisk构建操作。不幸的是,大多数示例都是用JS编写的,所以我不得不用Swift重写它们。在我想要编写异步操作之前,这一切都很顺利 我遇到的第一个问题是GCD。Openwhisks Swift实现在linux上运行,因此为了使用GCD,需要导入libdispatch库。当然,我不能修改openwhisk在其Swift运行时加载的模块。最后,我偶然发现了IBMBlueMix沙盒,在那里我了解到有一个调度模块,可以提供对类似GCD的功能的访问。然而,虽然我可以创建

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

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

虽然我仍然无法解决第一个问题,但我仍在努力解决WhiskAPI。在JS中,有一个whisk.async()和whisk.done()命令。斯威夫特没有

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


我们还没有最终确定与JavaScript
whisk
API相当的Swift的设计。构造不一定会跨语言一对一地映射。例如,异步操作可能依赖于Swift中的
libdispatch
构造。

好的,谢谢您提供的信息。Swift沙盒的更新速度与OpenWhisk相同,还是相互排斥?OpenWhisk目前有点落后,但我们正在考虑使用他们的容器化工件,这可能会让我们“完全落后于他们”。