【问题标题】:How to return value from Promise in swift [duplicate]如何快速从 Promise 返回值 [重复]
【发布时间】:2021-02-20 10:45:03
【问题描述】:

我有这样的功能

    func fetchPokemons() -> [Pokemon] {
    var pokemons : [Pokemon] = []
    service.fetchPokemons().done{ (newPokemons) in
        pokemons += newPokemons.pokemons!
        print(pokemons)
    }.catch { (error) in
        print(error)
    }
    print(pokemons)
    return pokemons
}

我需要获取口袋妖怪,然后将它们放入数组中。我的问题很明显。 Promise 是异步的,这就是我的函数返回空数组的原因。 .then 函数用于返回另一个 Promise,而 .done 返回 Void。那么我应该如何编写一个完成处理程序来返回填充的对象数组呢?

【问题讨论】:

标签: swift promisekit


【解决方案1】:

这是可以返回UIImage类型的promise的函数。

func getImageWithPromise() -> Promise<UIImage> {
    return Promise<UIImage>(on: .global(qos:.background), { (fulfill, reject) in
        URLSession.shared.dataTask (with: url) { data, response, error in
            if error != nil {
                reject(error)
                return
            }
            fulfill(data)
        }
    })
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多