PromiseKit в Linux swift project работает не так, как ожидалось

#swift #promisekit

#swift #promisekit

Вопрос:

Если вы выполните в проекте Linux swift что-то вроде:

 import PromiseKit

func runAsyncAction() {
    firstly {
        executeSomePromiseFunc()
    }.done {
        getResult($0)
    }
}
 

getResult($0) никогда не будет выполнено. Почему?

Ответ №1:

В проекте 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