0

我正在使用一种remove方法来发出要存储的值。但是得到一个错误 error TS2322: Type 'void' is not assignable to type 'Promise<void> | JQueryPromise<void>'.- 如何解决这个问题?

这是我使用的示例:

https://js.devexpress.com/Demos/WidgetsGallery/Demo/DataGrid/CRUDOperations/Angular/Light/

这是我的 ts 代码:

ngOnChanges() {

        if (!this.subsystems) { return; }

        this.dataSource = new CustomStore({
            key: 'Id',
            load: (loadOptions) => this.loadData(loadOptions),
            update: (key: number, values) => this.updateData(key, values),
            remove: (key) => this.removeData(key) //getting error here
        });

    }

    loadData(loadOptions) {
        return new Promise((resolve, reject) => {
            this.dataGrid.columns = this.columns;
            resolve({ data: this.subsystems, totalCount: 10 });
        });
    }

    removeData(key: any) {
        this.deleteId.emit(key);
    }

附加错误

4

1 回答 1

1

错误 TS2322:类型 'void' 不可分配给类型 'Promise | jQueryPromise'

然后让红色下划线的函数返回一个承诺。

    removeData(key: any) {
        this.deleteId.emit(key);
        return Promise.resolve();
    }

不过,这是一个快速且有点肮脏的修复方法。理想情况下,只有在听者this.deleteId完成所有业务后,该承诺才会得到解决(但如果没有异步发生,你应该没问题)。

于 2019-06-14T11:27:16.083 回答