Rxjs 如何在源为数组时取消合并映射
您好,我使用rxjs中的mergemap。我使用对象数组Rxjs 如何在源为数组时取消合并映射,rxjs,mergemap,Rxjs,Mergemap,您好,我使用rxjs中的mergemap。我使用对象数组 const list = [{name:'test',url:'https.....'}.....] const source = from(list) .pipe(mergeMap(getFile, null, 4)) .subscribe(saveDB); 在我的getFile函数中,我使用axios对blob和subscribe save执行downlaod文件。 现在让我们假设我想取消所有的过程,现在我只是返回承诺拒绝,或者如果
const list = [{name:'test',url:'https.....'}.....]
const source = from(list)
.pipe(mergeMap(getFile, null, 4))
.subscribe(saveDB);
在我的getFile函数中,我使用axios对blob和subscribe save执行downlaod文件。
现在让我们假设我想取消所有的过程,现在我只是返回承诺拒绝,或者如果继续解决。
有更好的办法吗
我的目标是下载新文件。
获取文件
您必须使用
CancelToken
()来取消请求。请发布你的getFile
函数的代码。我不确定你想实现什么。您正在尝试取消所有正在下载的文件,还是正在尝试取消特定的文件?或者只选择某些要下载的,而其他不下载?当用户单击“取消”时,我想取消所有将来和当前的下载。但处理的文件只是移动到订阅,如示例所示。
return new Promise(async (resolve, reject) => {
//change on click for example
if (!downloadInProgress) {
reject("finish");
}
const dataToSave = {
...val,
blob: new Blob([response.data], { type: val.type }),
};
resolve(dataToSave);
})