我是angular的新手,我有以下问题
将响应值分配给我的服务的变量时,该变量在合唱控制台中显示为未定义
但在subscribe方法http中,该变量具有响应的赋值。
我不明白问题所在
@Injectable()
export class ControlService {
permissao: string;
constructor(
private httpConnection: HttpConnection,
private http: Http){}
getControl(){
if(localStorage.papel){
this.buscar('desconto', 'todos');
console.log('Permissão: ' + this.permissao);
}
buscar(desconto : string, todos : string){
return this.http.get('http://localhost:8080' + "/" + aplicacao + "/" + nome)
.subscribe((response) => {this.permissao = response.text(); console.log(this.permissao)});
}
}console.log inside busca方法在google chrome控制台中显示该值,但是getControl方法中的控制台将permissao变量的值显示为未定义
发布于 2018-09-28 03:20:20
this.buscar是异步操作,getControl内部的console.log语句是同步调用的。所以它的调用紧跟在this.buscar('desconto','todos')行之后。但是,与此同时,buscar订阅块尚未执行,仍在等待get调用得到解决。因此,你变得不确定了。
https://stackoverflow.com/questions/52543726
复制相似问题