我写了自己的promise,想把它链起来,但结果总是只有链中的第一个。我认为如何使用它们对我来说存在理解问题,但我找不到。
我的代码:
-(PMKPromise*)tryTheFirstPromiseWorkflow:(TestCycleObject *)testCycleObject{
PMKPromise *promise = [PMKPromise new:^(PMKPromiseFulfiller fulfill, PMKPromiseRejecter reject) {
fulfill(PMKManifold([_addModul addSomething:testCycleObject]));
}];
promise.then(^(TestCycleObject *testCycleObject){
testCycleObject = [_addModul addSomething:testCycleObject];
NSLog(@"Result: %i, Fulfilled: %d", testCycleObject.result, promise.fulfilled);
return testCycleObject;
}).then(^(TestCycleObject * testCycleObject){
testCycleObject = [_multiModul multiSomething:testCycleObject];
NSLog(@"Result: %i, Fulfilled: %d", testCycleObject.result, promise.fulfilled);
return testCycleObject;
}).then(^(PMKPromiseFulfiller fulfill, PMKPromiseRejecter reject){
fulfill(testCycleObject);
});
return promise;}
一开始我创建了 Promise,然后链启动,但是在创建 Promise 之后,它将只交付在 Promise 初始化中传递的操作,而不是链作为结果。
我尝试了您的目的,但仍然遇到问题:
-(void)test{
PMKPromise *test = (PMKPromise*)[self tryTheFirstPromiseWorkflow: [[TestCycleObject alloc] initWithDefaultValues]];
TestCycleObject *temp = (TestCycleObject*) test.value;
NSLog(@"Test: %i", temp.result);
}
这就是我所说的承诺,但它的结果总是空的。承诺在我的日志之后执行,但我无法获取结果。那么我怎样才能在我的方法中得到结果。我认为该方法必须停止,直到承诺运行,我错了吗?