【发布时间】:2017-10-09 23:06:59
【问题描述】:
如何取消尚未履行或拒绝的承诺?
PromiseKit 的文档谈到了取消承诺,但我找不到具体的例子来说明如何做到这一点。
给定:
currentOperation = client.load(skip: skip, query: nil)
currentOperation!.then { (items) in
self.processItems(items: items, skip: skip, query: query)
}.catch { (error) in
print("failed to load items - just retrying")
self.loadIfNeeded(skip: skip, query: query, onlyInStock: onlyInStock)
}
如果查询更改(用户在搜索栏中输入一些文本)我想取消并丢弃currentOperation,开始一个新的承诺。
【问题讨论】:
-
Promisekit github 页面上有一个关于 Promise 链取消的线程。你检查here了吗?
-
我明白了,谢谢@ridvankucuk。我可以看到它并不像我最初想象的那么微不足道。
-
您最好研究一下 RxSwift、ReactiveKit、Interstellar 或其他响应式 SDK 之一来完成此类工作。
-
再次感谢您的建议。其中,你有最喜欢的吗?
标签: ios swift promisekit