以下内容不会在控制台输出数组。作用域错误吗?
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Broker } from './broker';
@Injectable()
export class BrokerSurveyService {
brokers: Broker[] = [];
constructor(private http: HttpClient) {
this.getBrokers().subscribe((brokers) => {
this.brokers = brokers;
});
console.log(this.brokers); # Does NOT output to console
}
getBrokers() {
return this.http.get<Broker[]>('http://www.example.com/brokers.json');
}
}
这个数组被输出到控制台是因为它在赋值后立即发送到控制台。但是,this
的作用域是否不同?我很困惑为什么会这样。
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Broker } from './broker';
@Injectable()
export class BrokerSurveyService {
brokers: Broker[] = [];
constructor(private http: HttpClient) {
this.getBrokers().subscribe((brokers) => {
this.brokers = brokers;
console.log(this.brokers); # Outputs to console
});
}
getBrokers() {
return this.http.get<Broker[]>('http://www.example.com/brokers.json');
}
}