我有一个简单的提交方法,首先打印Console.log(11),然后打印console.log(1)。我需要为什么它会以这种方式运行。
submit(value) {
this.secServise.getUserById(this.currentUser.mgId).subscribe( uAddrs => {
this.tempUser = uAddrs;
console.log(1);
});
if (value[this.keyPwd] !== value[this.keyCPwd]) {
this.messageService.add({
severity: 'error',
summary: 'Password and Confirm Password should match',
detail: ''
});
} else {
console.log(11);
}
}
答案 0 :(得分:1)
这与Angular无关,而与Javascript的工作方式无关。基本上,您的代码不会像您期望的那样同步,因为您的getUserById
调用很可能是异步的。
这意味着Java语言不会等到getUserById
回调函数被调用。相反,它将继续执行下一行代码,在这种情况下显然是console.log(11)
行,因为if语句的计算结果为false。