Как сохранить промежуточные данные с любым оператором высокого порядка? - PullRequest
0 голосов
/ 03 января 2019

Я использую switchMap и mergeMap и мне нужно сохранить некоторые дополнительные данные.

см. Код

    from(fileList)
      .pipe(
        mergeMap((file: File) => {
          return this.s3Service.checkExists(file);
        })
      )
      .subscribe((hash: any) => {
         // I want to access to the `file:File` here as well
        console.log(`hash exists`, hash, file);
      });

Как этого добиться?

1 Ответ

0 голосов
/ 03 января 2019

Сопоставьте результат вашего метода s3Service.checkExists с объектом, который включает исходный файл:

from(fileList)
  .pipe(
    mergeMap((file: File) => {
      return this.s3Service.checkExists(file).pipe(map(hash => ({hash, file})));
    })
  )
  .subscribe(data => {
     // I want to access to the `file:File` here as well
    console.log(`hash exists`, data.hash, data.file);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...