Angular 角度2在if条件下等待可观察到的结束
我已经实现了这样一个if语句Angular 角度2在if条件下等待可观察到的结束,angular,observable,Angular,Observable,我已经实现了这样一个if语句 if(this.service.check()){ 返回true; } 否则{ } 此if条件等待来自后端的响应。但是在执行observable之前,它将进入else语句并完成条件,而不在开始时检查if条件 这是我从后端获取数据的可观察方法 公开检查(){ 这是.getActorRole().subscribe( (resp=>{ 如果(resp==true){ 返回真值 } }), (错误=>{ console.log(错误); }) ); } } 因此,如何
if(this.service.check()){
返回true;
}
否则{
}
此if条件等待来自后端的响应。但是在执行observable之前,它将进入else语句并完成条件,而不在开始时检查if条件
这是我从后端获取数据的可观察方法
公开检查(){
这是.getActorRole().subscribe(
(resp=>{
如果(resp==true){
返回真值
}
}),
(错误=>{
console.log(错误);
})
);
}
}
因此,如何使条件等待,直到它从后端获得响应您不能等待一个
可观察的
或承诺
完成。您只能订阅它以在它完成或发出事件时获得通知
公开检查(){
返回此。getActorRole()//{
如果(值){
返回true;
}
否则{
}
}
然后执行
subscribe()
,在这里调用此代码我已经实现了.map。问题是它在check()函数执行之前执行了else条件。因此它总是转到else条件,因为代码需要位于映射(…)
,subscribe(…)
或任何其他可观察到的运算符。在异步
函数中,人们可以等待
的承诺来解决问题(现在)