【发布时间】:2018-03-29 05:37:29
【问题描述】:
我环顾四周试图解决这个问题,但找不到有效的答案。
当 subscribe() 方法成功返回 'contacts$' observable 时,我正在尝试为附加函数实现回调,但在订阅上使用 complete() 并没有做任何事情。
我也尝试过按照其他地方的建议在可观察对象上使用 finally(),但这也不起作用。
使用完成():
ngOnInit() {
this.getContacts().subscribe(
data => {
this.contacts = data;
console.log('NewInvoice.contacts:', data);
this.selectedContactId = this.contacts[0].id;
console.log('selectedContactId: ' + this.selectedContactId);
},
error => {
console.error('Error getting contacts via subscribe() method:', error);
},
() => {
this.getSelectedContact();
}
)
}
使用 finally():
ngOnInit() {
this.getContacts()
.finally(() => console.log('a'))
.subscribe(
data => {
this.contacts = data;
console.log('NewInvoice.contacts:', data);
this.selectedContactId = this.contacts[0].id;
console.log('selectedContactId: ' + this.selectedContactId);
},
error => {
console.error('Error getting contacts via subscribe() method:', error);
},
() => {
this.getSelectedContact();
}
)
}
可观察完成的回调方法:
getSelectedContact() {
this.contactsCollection.doc(this.selectedContactId).ref.get().then(snapshot => {
this.selectedContact = snapshot.data() as Contact;
console.log('selectedContact:', this.selectedContact);
})
}
【问题讨论】:
-
看看here。希望对你有帮助
-
如果没有
getContacts来源就无法判断。 -
@Roham Rafii - 该帖子的答案从字面上描述了如何做我在我的问题中显示的内容不起作用......
-
getSelectedContact() 中 this.selectedContactId 的值是多少?调用 getSelectedContact() 时是否已经设置了值?
-
有一些不同之处。该答案使用
finally、catch和subscribe。
标签: javascript angular typescript rxjs observable