可观察性完成后,我需要显示一个烤面包,我该怎么做,我的代码是:
this.commerceCtrl.UpdateCategories(this.toSave).subscribe(data => {
}, error => {
this.mainFunction.showError(error)
}),
complete => {
this.mainFunction.showToast(this.localization.message_ok)
}
我试图这样做:
this.commerceCtrl.UpdateCategories(this.toSave).subscribe(data => {
}, error => {
this.mainFunction.showError(error)
}),
() => {
this.mainFunction.showToast(this.localization.message_ok)
}
但这不起作用
答案 0 :(得分:6)
您必须传递complete
处理程序作为要订阅的第三个参数。
在您的代码中,只需将右括号移到末尾即可。
更改此代码:
this.commerceCtrl.UpdateCategories(this.toSave).subscribe(data => {
}, error => {
this.mainFunction.showError(error)
}), // <===== Remove this parenthesis
() => {
this.mainFunction.showToast(this.localization.message_ok)
}; // <====== It should be here
对此:
this.commerceCtrl.UpdateCategories(this.toSave).subscribe(
data => {
// next handler body
}, error => {
this.mainFunction.showError(error)
}, () => {
this.mainFunction.showToast(this.localization.message_ok)
}
);
答案 1 :(得分:1)
您可以将对象参数赋予subscribe()
函数:
this.commerceCtrl.UpdateCategories(this.toSave).subscribe({
next: value => { ... },
error: err => { ... },
complete: () => { ... }
});
答案 2 :(得分:0)
您可以尝试使用最终方法
this.commerceCtrl.UpdateCategories(this.toSave).finally(() => {
// complete
}).subscribe((data) => {
// success
}, (error) => {
// error
});
来源:https://github.com/angular/angular/issues/7865#issuecomment-204408637