我有以下问题。我需要从REST服务器返回值。一切都很好,我得到了我想要的东西,但是有一个小问题。异步不起作用,我不明白为什么。我将通过图像向您展示我的代码和结果。
代码
并导致chrome
为什么它不起作用,因为我想工作?当然,结果应该是 1/2 然后3.感谢您的帮助
js代码
ngOnInit() {
this.error = this.getBlockedText();
}
private getBlockedText(): string {
let customTxt;
this.proxy.core.getUISettings({}).then(res => {
customTxt = res;
console.log('1');
}).catch(err => {
console.log('2');
})
console.log('3');
return customTxt;
}
答案 0 :(得分:4)
异步无法正常工作
是的,是的。
为什么它不起作用,因为我想工作?
因为您希望它同步工作而且是异步的。
当然,结果应该是1/2然后是3。
如果您希望承诺解决然后显示1 然后显示2 然后显示3 ...您必须将其中的每一个(包括3
处理程序中的then()
}。
目前,您已将3
直接放在启动异步函数的代码之后,因此它会在异步函数完成之前运行。
答案 1 :(得分:-1)
请参阅此 link如果您对异步调用有疑问。最后一部分在异步调用之前运行,因此您的问题