功能定义
resetComponent(){
console.log("1st");
...
this.background = { };
this.uploadMode = false;
this.service.getItem(this.watch.appId, true).subscribe((watch) => {
this.background = { ... };
console.log("2nd");
}, ()=> {});
}
我的代码
console.log("before resetComponent()");
resetComponent();
console.log("after resetComponent()");
它不适用于异步。
我想看到这样的控制台
before resetComponent()
1st
2nd
after resetComponent()
我不完全理解
async
。我如何实现我的目标?
最佳答案
一旦调用subscribe(),您的代码将继续运行,并且您的订阅将异步运行。
您会想要这样的东西。您将要在此处使用管道而不是订阅。确保您返回可观察的位置,以便以后可以订阅。 :
resetComponent() {
console.log("1st");
this.background = {};
this.uploadMode = false;
return this.service.getItem(this.watch.appId, true).pipe((watch) => {
this.background = { ... };
console.log("2nd");
}, () => { });
}
然后使用订阅调用它。
console.log("before resetComponent()");
resetComponent().subscribe(() => {
console.log("after resetComponent()");
});