Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rxjs 如何在源为数组时取消合并映射_Rxjs_Mergemap - Fatal编程技术网

Rxjs 如何在源为数组时取消合并映射

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文件。 现在让我们假设我想取消所有的过程,现在我只是返回承诺拒绝,或者如果

您好,我使用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文件。 现在让我们假设我想取消所有的过程,现在我只是返回承诺拒绝,或者如果继续解决。 有更好的办法吗

我的目标是下载新文件。 获取文件


您必须使用
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);

})