错误 TS2322:类型 'void' 不可分配给类型 'Promise<void> | JQueryPromise<void>'
error TS2322: Type 'void' is not assignable to type 'Promise<void> | JQueryPromise<void>'
我正在使用 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);
}
error TS2322: Type 'void' is not assignable to type 'Promise | JQueryPromise'
然后用红色下划线return一个promise函数。
removeData(key: any) {
this.deleteId.emit(key);
return Promise.resolve();
}
虽然这是一个快速但有点脏的修复程序。理想情况下,只有在听 this.deleteId
的人结束他的所有业务后,该承诺才会得到解决(但如果那里没有任何异步发生,你应该没问题)。
我正在使用 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);
}
error TS2322: Type 'void' is not assignable to type 'Promise | JQueryPromise'
然后用红色下划线return一个promise函数。
removeData(key: any) {
this.deleteId.emit(key);
return Promise.resolve();
}
虽然这是一个快速但有点脏的修复程序。理想情况下,只有在听 this.deleteId
的人结束他的所有业务后,该承诺才会得到解决(但如果那里没有任何异步发生,你应该没问题)。