我有以下情况:
- 从服务器请求令牌
- 执行一个请求,即getAllNews
- 解析请求 getAllNews 的响应
- 持久化解析的数据
- 删除请求的令牌
我使用 Promise 执行这 5 个操作:
return [self createToken].then(^(NSString *token) {
return [self performRequestGetAllNewsUsingToken:token];
}).then(^(id responseObject) {
return [self parseNewsResponse:responseObject];
}).then(^(NewsResponseObject *newsResponseObject) {
return [self persistNewsFromArray:newsResponseObject.allNews inContext:self.context];
}).finally(^{
[self deleteToken:token];
});
我面临的问题是我无法将参数发送到finally
- 此token
参数丢失。
我考虑过在 , 之后立即调用deleteToken
,then
但[self performRequestGetAllNewsUsingToken:token]
只有在前一个解析为实际结果而不是错误时才会执行操作。无论请求的结果如何,无论它是否成功执行,我都应该销毁令牌。
有没有办法设置一个规则,如果createToken
执行,那么deleteToken
无论如何都应该调用,但只有在执行我的正常请求之后getAllNews
?