как подождать, пока обещают решение rxjs filter

Он просто говорит, что приложение должно запускаться на веб-сервере. У меня была такая же проблема с хром, я начал tomcat и перенесла туда свое приложение, и оно сработало.

0
задан itaied 13 July 2018 в 15:22
поделиться

2 ответа

Вы можете попробовать с моим предложением - с помощью switchMap pipe

let isAlreadyExist = false; // "global" variable :)
s$.pipe(
    map((x) => x + 1),
    switchMap(async (x) => {
      isAlreadyExist = await alreadyExist(x); // make sure alreadyExist is a promise func
      return x; // "do" do nothing with your data
    }),
    filter((x) => isAlreadyExist)) // isAlreadyExist is value of alreadyExist func
  .subscribe(...)

или вы можете прочитать о defer из RxJS Observable.

1
ответ дан hoangdv 17 August 2018 в 12:31
поделиться

Если alreadyExist возвращает boolean, вы можете использовать mergeMap, который будет ждать его результата, а если он true, то он отобразит его в исходное значение x. Когда он false, он просто отфильтровывается filter.

s$.pipe(
    map((x) => x + 1),
    mergeMap(x => from(alreadyExist(x)).pipe(
      filter(Boolean),
      mapTo(x),
    )),
  )
  .subscribe(...)
0
ответ дан martin 17 August 2018 в 12:31
поделиться
  • 1
    как вы pipe обещали? – itaied 13 July 2018 в 15:34
  • 2
    Если alreadyExist возвращает Promise, вам придется обернуть его с помощью from – martin 14 July 2018 в 06:52
Другие вопросы по тегам:

Похожие вопросы: