【发布时间】:2018-11-20 12:16:50
【问题描述】:
this.Showdata = false;
this.showSpinner = true;
this.subscription = this.assessmentlistService.getAll().subscribe(response => {
if (response != null) {
if (response.StatusCode >= 200 && response.StatusCode < 300) {
this.AssessmentList = response.Data;
this.Showdata = true;
}
else {
//this.AssessmentList = [];
}
this.updateAssessmentList.next();
}
this.showSpinner = false;
},
error => {
this.messageData = new MessageData();
this.messageData.Message = "Server Error, please try again later";
this.messageData.ShowErrorMessage = true;
this.showSpinner = false;
}
);
这是我的api调用方法。我尝试了取消订阅方法。它不工作。下面的代码我用来每 1 分钟刷新一次数据表。
Refresh() {
setInterval(() => {
this.subscription.unsubscribe();
this.Showdata = false;
this.showSpinner = true;
this.subscription = this.assessmentlistService.getAll().subscribe(response => {
if (response != null) {
if (response.StatusCode >= 200 && response.StatusCode < 300) {
this.AssessmentList = response.Data;
this.Showdata = true;
}
else {
//this.AssessmentList = [];
}
this.updateAssessmentList.next();
}
this.showSpinner = false;
},
error => {
this.messageData = new MessageData();
this.messageData.Message = "Server Error, please try again later";
this.messageData.ShowErrorMessage = true;
this.showSpinner = false;
}
);
}, 60000);
}
我在尝试重新加载数据表时遇到此错误。
ObjectUnsubscribedError {name: "ObjectUnsubscribedError", stack: "ObjectUnsubscribedError: object unsubscribed↵ a...odule/AssessmentListComponent.ngfactory.js:549:5)", message: "object unsubscribed", ngDebugContext: DebugContext_, ngErrorLogger: ƒ} 信息 : “对象取消订阅” 姓名 : “对象未订阅错误” ngDebugContext : DebugContext_ {view: {…}, nodeIndex: 74, nodeDef: {…}, elDef: {…}, elView: {…}} ngErrorLogger : ƒ () 堆 : “ObjectUnsubscribedError:对象取消订阅↵在新的 ObjectUnsubscribedError (webpack-internal:///./node_modules/rxjs/_esm5/util/ObjectUnsubscribedError.js:22:26)↵ 在 Subject._trySubscribe (webpack-internal:///./ node_modules/rxjs/_esm5/Subject.js:105:19)↵ 在 Subject.Observable.subscribe (webpack-internal:///./node_modules/rxjs/_esm5/Observable.js:166:93)↵ 在 DataTableDirective.ngOnInit (webpack-internal:///./node_modules/angular-datatables/src/angular-datatables.directive.js:23:28)↵ 在 checkAndUpdateDirectiveInline (webpack-internal:///./node_modules/@angular/core/ esm5/core.js:12627:19)↵ 在 checkAndUpdateNodeInline (webpack-internal:///./node_modules/@angular/core/esm5/core.js:14151:20)↵ 在 checkAndUpdateNode (webpack-internal:// /./node_modules/@angular/core/esm5/core.js:14094:16)↵ 在 debugCheckAndUpdateNode (webpack-internal:///./node_modules/@angular/core/esm5/core.js:14987:76) ↵ 在 debugCheckDirectivesFn (webpack-internal:///./node_modules/@angular/core/es m5/core.js:14928:13)↵ 在 Object.eval [as updateDirectives] (ng:///AssessmentModule/AssessmentListComponent.ngfactory.js:549:5)" 原型 : 错误
【问题讨论】:
-
ObjectUnsubscribedError仅从已调用unsubscribe的Subject抛出,因此这就是您需要寻找的内容。
标签: angular rxjs angular5 observable subscribe