swift - Linux swift 项目中的 PromiseKit 无法按预期工作
问题描述
如果你在 Linux swift 项目中执行类似:
import PromiseKit
func runAsyncAction() {
firstly {
executeSomePromiseFunc()
}.done {
getResult($0)
}
}
getResult($0)
永远不会被执行。为什么?
解决方案
在 Linux swift 项目中,您需要使用:
import PromiseKit
import Dispatch
func runAsyncAction() {
firstly {
executeSomePromiseFunc()
}.done(on:DispatchQueue.global()) {
getResult($0)
}.ensure(on:DispatchQueue.global()) {
}.catch(on:DispatchQueue.global()) {
}
}
PS。适用于 Ubuntu 16.04、Swift 4.2