我试图通过一些在每个级别添加功能的类来级联一个承诺。
+ (AnyPromise *) method {
return [SomeClass whichReturnsPromise]
.then(^(id obj){
// do stuff
return obj;
});
}
不幸的是,这段代码在第二行引发了错误:
exc_bad_access (code=1 address=0x10)
(注意:只需调用return [SomeClass whichReturnsPromise]
即可。)
我已经搜索了stackoverflow的答案,并尝试了上述代码的许多变体(可以在javascript中使用),但我一直得到同样的错误。我该如何解决这个问题?
答案 0 :(得分:2)
结果显示[SomeClass which ReturnsPromise]
在转换为返回承诺之前返回nil
的中断案例。将其更改为返回值为nil
的承诺。立即行动。
答案 1 :(得分:0)
如果没有测试,我认为以下内容应该有效:
[self wait].then(^{
return [SomeClass whichReturnsPromise];
}).then(^(id obj) {
return obj;
});
我知道以下是Swift,但如果您有AnyPromise
,则可以在Promise<T>
链中使用它:
someSwiftPromise().then { _ -> AnyPromise in
// provided by `pod PromiseKit/SystemConfiguration`
return SCNetworkReachability()
}.then { (obj: AnyObject?) in
// AnyPromise always resolves with `AnyObject?`
}