0
我試圖瞭解承諾如何工作,但我不明白爲什麼我需要按下我的按鈕超過這個承諾鏈工作幾次。鏈接多個承諾
- 第一個函數創建新用戶並返回一個承諾。
- 如果用戶有車,則更新其他系統。
- 第三個應該在收到車號時更新用戶對象。
當我只按下按鈕CreateUser
被解僱。如果我再次按下按鈕,它也會觸發UpdateModel
。
CreateUser(newUser).then((userObject) => {
if(userObject.car) {
UpdateModel(userObject.objectId, userObject.car).then((carId) => {
userObject.car = carId;
UpdateUser(userObject).then((updatedUser) => {
this.moveNextPage(updatedUser);
});
}, (error) => {
console.log(error);
});
} else {
this.moveNextPage(userObject);
}
}, (error) => {
console.log(error);
})
你不會返回傳遞給'.then()'的函數的promise,所以promise * it *返回的promise不會等待任何東西。 – Ryan
雖然嵌套承諾是此代碼中的一個問題,但真正的問題可能在於處理按鈕點擊的代碼,而這不在此處。 – Joseph
[我如何訪問以前的承諾導致.then()鏈可能重複?](http://stackoverflow.com/questions/28250680/how-do-i-access-previous-promise-results-in- a-then-chain) –