【发布时间】:2015-03-23 12:29:04
【问题描述】:
如果我有
promise = userService.updateUser($stateParams.userId, req);
promise.then(
function(user) {
logger.logSuccess('Updated user');
$scope.resetForm();
WizardHandler.wizard().goTo(0);
return user;
},
function(error) {
logger.logError('Ups an error has occurred');
console.error('error updating user: ' + error);
}
);
promise.then(function(user) {
_.each(uploader.getNotUploadedItems(), function(item) {
return item.formData.push({
id: user.id
});
});
});
然后如果 updateUser 失败,将显示日志,然后第二个 then 将不会执行但是如果我有
promise = userService.updateUser($stateParams.userId, req).then(
function(user) {
logger.logSuccess('Updated user');
$scope.resetForm();
WizardHandler.wizard().goTo(0);
return user;
},
function(error) {
logger.logError('Ups an error has occurred');
console.error('error updating user: ' + error);
}
);
promise.then(function(user) {
_.each(uploader.getNotUploadedItems(), function(item) {
return item.formData.push({
id: user.id
});
});
});
第二个 then 将被执行
我不知道为什么,我的意思是这不只是常规链接吗?
【问题讨论】:
标签: javascript promise chaining