我有一个弹出式消息,我希望在我的observable交付时呈现,它是一个可观察的字符串。
这是我的函数,返回字符串observable:
public sendUpdate() {
this._mtService.sendCurrentUpdate(this.myList).subscribe(
res => this.messageToDisplay = res,
error => this.messageToDisplay = error
);
}
这是我的功能,我弹出相关消息:
public showMessageDialog(message) {
let config = new MdDialogConfig()
.title('Message:')
.textContent(message)
.ok('Got it');
this.dialog.open(MdDialogBasic, this.element, config);
}
现在,我想知道在observable准备就绪时,我应该在何处以及如何调用此消息来显示messageToDisplay
。
如果你能告诉我如何在observable等待接收字符串然后当它出现在那里时我可以显示一些加载器,那会更好......
我试着这样做:
public sendUpdate() {
this._mtService.sendCurrentUpdate(this.myList).subscribe(
res => this.messageToDisplay = res,
error => this.messageToDisplay = error
);
this.showMessageDialog(this.messageToDisplay);
}
但是这里发生的是第一次点击更新我看到一个空的弹出窗口,如果我再次点击它,我会看到弹出的消息,很明显它发生了因为字符串没有来回来了,但我该如何克服它?
谢谢!
答案 0 :(得分:1)
传递给getContent()
的函数将稍后/异步调用,因此您需要稍后调用subscribe()
:
showMessageDialog()