【问题标题】:"ObjectUnsubscribedError"- while reloading the angular data table using get call“ObjectUnsubscribedError”- 在使用 get 调用重新加载角度数据表时
【发布时间】: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 仅从已调用 unsubscribeSubject 抛出,因此这就是您需要寻找的内容。

标签: angular rxjs angular5 observable subscribe


【解决方案1】:

如果你想每 1 分钟重复一次你的代码,使用Observableinterval 操作符更方便、更简洁:

Observable
    .interval(60*1000) //one minute
    .flatMap(() => this.assessmentlistService.getAll())
    .subscribe(response => {
        if (response != null) {
            //.... your other code
        }
    });

.flatMap() 允许您在每次解析后重复调用getAll() API(想想重复订阅)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 2019-08-08
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多