我试图在从服务获取数据后排队或创建回调函数,但该函数似乎是异步调用的。我希望在获取数据后调用该函数,因为该函数需要Observable中的数据。到目前为止,这不起作用,因为在将所有数据分配给this.items之前调用该函数:
this._itemsService.getItems().subscribe(items => this.items = items, err => {}, callThisFunctionAfter());
有没有办法将函数转换为回调或队列,就像承诺一样?
答案 0 :(得分:1)
你需要使它成为闭包而不是函数调用。
this._itemsService.getItems().subscribe(items => this.items = items, err => {}, () => callThisFunctionAfter());
如果没有() =>
,则调用该函数,并将结果作为回调传递。
这是callThisFunctionAfter()
在subscribe()
之前执行的原因,而不是在observable关闭时执行的原因。