小编she*_*haf的帖子

如何等待订阅功能以角度 8 完成?

我想等待一个函数完成,然后再执行它旁边的函数。我有一个名为getData() 的函数,其中发生了 http 调用,它返回一个 observable。第二个函数checkDuplicate()我们订阅了该函数getData()。我们有第三个函数,称为proceed(),我们在其中调用checkDuplicate()函数,一旦checkDuplicate()函数完成,我们就会调用alert("finished")。但这里的问题是在checkDuplicate()函数完成之前,警报已经被触发。

找到代码以获得更好的说明:

getData(): Observable<any>{
  return this.http.get<any>(URL...);
}

checkDuplicate(){

return this.getData().subscribe(response => {
   if(response){
      console.log("Inside");
  }
});
}

proceed(){
 this.checkDuplicate();
 console.log("finished");
}
Run Code Online (Sandbox Code Playgroud)

实际结果

完成的

里面

预期结果

里面

完成的

我试过asyn/await等待 checkDuplicate() 函数完成。但是还是没有用。如果您分享解决方案,将不胜感激。提前致谢 !!!

wait subscribe observable async-await angular8

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular8 ×1

async-await ×1

observable ×1

subscribe ×1

wait ×1