【发布时间】:2019-11-29 13:35:44
【问题描述】:
我有一组分块数据,我需要一次上传一个块。当前的实现我用它来封装 Promise.all() 中的逻辑,因为我需要返回 promise 的结果, 这种方法的问题是所有上传都是异步完成的,导致超时错误,因为服务器无法同时处理所有请求,我该如何修改这个方法,以便一次上传一个块? .
我的代码:
var chunks = _.chunk(variableRecords, 30);
return Promise.all(
chunks.map(chunk => this.portalService.updateDataForChart(variableId, chunk)))
.then((updateRes: boolean[]) => {
if (updateRes.every(updateStatus => updateStatus)) {
return this.executeRequest<HealthDataSource, boolean>({
path: `/variable/user/datasources/${dataSource.identifier}`,
method: 'PUT',
body: {
libelle: dataSource.datasource.libelle,
type: dataSource.datasource.type,
lastSyncDate: Math.max(maxDate, dataSource.datasource.lastSyncDate)
},
headers: this.getHeaders()
});
} else {
return false;
}
});
【问题讨论】:
标签: javascript typescript promise lodash