Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2在if条件下等待可观察到的结束_Angular_Observable - Fatal编程技术网

Angular 角度2在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语句

if(this.service.check()){
返回true;
}
否则{
}
此if条件等待来自后端的响应。但是在执行observable之前,它将进入else语句并完成条件,而不在开始时检查if条件

这是我从后端获取数据的可观察方法

公开检查(){
这是.getActorRole().subscribe(
(resp=>{
如果(resp==true){
返回真值
}
}),
(错误=>{
console.log(错误);
})
);
}
}

因此,如何使条件等待,直到它从后端获得响应

您不能等待一个
可观察的
承诺
完成。您只能订阅它以在它完成或发出事件时获得通知

公开检查(){
返回此。getActorRole()//{
如果(值){
返回true;
}
否则{
}
}

然后执行
subscribe()
,在这里调用此代码我已经实现了.map。问题是它在check()函数执行之前执行了else条件。因此它总是转到else条件,因为代码需要位于
映射(…)
subscribe(…)
或任何其他可观察到的运算符。在
异步
函数中,人们可以
等待
的承诺来解决问题(现在)