【发布时间】:2016-07-10 21:46:49
【问题描述】:
我正在尝试使用 PromiseKit,但在解决这个问题时遇到了一些麻烦。我有一个类似的功能
func lengthyOperation() -> Promise<TestObject> {
return Promise { fulfil, reject in
dispatch_async(GlobalUserInitiatedQueue) {
do {
let testObject = ...
fulfil(testObject)
} catch {
reject(error)
}
}
}
}
我想调用另一个函数,并返回另一个承诺
func lengthyOperation2() -> Promise<Test2Object> {
return Promise { fulfil, reject in
let test2Object = ...
if test2Object == nil {
lengthyOperation().then { testObject: TestObject in
let test2Object = doSomethingWithTestObject(testObject)
fulfil(test2Object) //Compiler error here
}.error {
reject(error)
}
} else {
fulfil(test2Object)
}
}
}
我得到一个编译器错误提示
Cannot convert return expression of type 'Void' (aka '()') to return type 'AnyPromise'
几个问题:
- 我需要在 promise 调用中使用 dispatch_async 吗?
- 如何调用和返回这样的嵌套 promise?
谢谢
编辑:更正一些伪代码
【问题讨论】:
标签: swift promisekit