[英]“ObjectUnsubscribedError”- while reloading the angular data table using get call
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 {名称:“ ObjectUnsubscribedError”,堆栈:“ ObjectUnsubscribedError:对象已取消订阅…odule / AssessmentListComponent.ngfactory.js:549:5)”,消息:“对象未订阅”,ngDebugContext:DebugContext_,ngErrorLogger:ƒ}消息:“取消订阅对象”名称:“ ObjectUnsubscribedError” 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-内部:///./node_modules/angular-datatables/src/angular-datatables.directive.js:23:28)↵在checkAndUpdateDirectiveInline(webpack-interna l:///./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/@在debugCheckDirectivesFn上找到angular / core / esm5 / core.js:14987:76)↵(webpack-internal:///./node_modules/@angular/core/esm5/core.js:14928:13)↵在Object.eval [ as updateDirectives](ng:///AssessmentModule/AssessmentListComponent.ngfactory.js:549:5)“ 原型 :错误
如果您想每1分钟重复一次代码,请使用Observable
的interval
操作符更加方便和简洁:
Observable
.interval(60*1000) //one minute
.flatMap(() => this.assessmentlistService.getAll())
.subscribe(response => {
if (response != null) {
//.... your other code
}
});
.flatMap()
允许您在每次解析后重复调用getAll()
API(请考虑重复订阅)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.