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) –