如何快速从 Promise 返回值 [重复]
Posted
技术标签:
【中文标题】如何快速从 Promise 返回值 [重复]【英文标题】:How to return value from Promise in swift [duplicate] 【发布时间】: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。那么我应该如何编写一个完成处理程序来返回填充的对象数组呢?
【问题讨论】:
这能回答你的问题吗? Returning data from async call in Swift function 是的。感谢您的回答,很抱歉我的问题很糟糕 【参考方案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)
)
【讨论】:
以上是关于如何快速从 Promise 返回值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在异步函数内部,从回调函数返回值返回 Promise(undefined) [重复]