[英]What is the difference between these two syntax
如果我有
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
});
});
});
然后將執行第二個
我不知道為什么,我的意思是這不只是常規鏈接嗎?
如果 updateUser 失敗,將顯示日志,然后第二個將不會執行
是的,因為你正在分支:
success: - logSuccessAndResetForm()
| - makeNewFormData()
updateUser() --+
promise |
error - logError()
但是當使用常規鏈接時,將執行第二個鏈
是的當然。 您的錯誤處理程序處理錯誤,並通過返回值實現promise
。
success: - logSuccessAndResetForm() success: - makeNewFormData()
| \ |
updateUser() --+ >- promise --+
| / |
error - logError() ´ error: (nothing)
另請參閱此答案以獲取類似代碼的更漂亮的控制流程圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.