【发布时间】:2019-04-14 15:32:10
【问题描述】:
也许我没有抓住重点,但我的印象是observer.complete() 会完成观察者,即observer.complete() 之后的语句在完成后不会执行。
export class RecordsService {
public getRecords(): Observable<any> {
let vm = this;
return new Observable(observer => {
var records = vm.http.get(
url).subscribe(data =>{
console.log('we got data ', data);
observer.next(data)
observer.complete();
});
observer.next(null);
observer.complete();
});
}
}
我可以正确看到控制台,但订阅者正在获取数据并且为空。我怎样才能做到这一点?我希望通过observer.next(data) 获取数据,并且observer.next(null) 不会被执行,因为我之前调用了observer.complete()。
现在我先得到数据,然后是 null,这是我没想到的
【问题讨论】:
-
您期望的行为是什么?
observer是什么? -
@alt255 也许我的解释错了,但是observer.next(data); observer.complete() 会因为没有更好的词而停止进一步的执行。没想到调用observer.complete()后会返回null。
标签: angular