保存 promise 实现和拒绝 promisekit

Posted

技术标签:

【中文标题】保存 promise 实现和拒绝 promisekit【英文标题】:save promise fulfill and reject promisekit 【发布时间】:2015-09-11 14:40:28 【问题描述】:

您好,我正在尝试创建一个 Promise,然后将函数 fulfill 和 reject 保存到 array 或 dictionary 中。我不知道这是否可行我得到了一些编译器错误。我知道你可以将函数存储在数组中,但我认为既然是在我需要做其他事情的承诺中,这是我的代码

let requestPromise = Promise<Bool>  fulfill, reject in
    self.socket.emit(message,dic)
    let dicFunc = [ "fulfill": fulfill, "reject":reject]
    self.request.updateValue(dicFunc, forKey: uuid)

我得到错误 无法使用类型为“([String : (NSError) -> Void], forKey: String)”的参数列表调用“updateValue”

【问题讨论】:

【参考方案1】:

fulfillreject 变量具有不同的类型,因此它们不能作为单独的值包含在同一个字典或数组中。 (除非您创建一个包含 Any 的字典/数组,但这会丢失所需的类型信息。)

查看Promise.pendingPromise()。你可以持有PendingPromises 的数组。

【讨论】:

以上是关于保存 promise 实现和拒绝 promisekit的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose 对 promise 拒绝处理

使用 Mocha 和 Chai-as-Promised 测试被拒绝的 Promise 的特定属性

在Angular 2中拒绝Promise时未处理的Promise拒绝[重复]

实现Promise的first等各种变体

promise

Bluebird Promise.all - 多个 Promise 完成聚合成功和拒绝