RxJS v5.x Наблюдаемые ожидают первого, отображают результат и переходят ко второму? - PullRequest
0 голосов
/ 10 мая 2018

Я изучаю RxJS, и из синхронного мира это сложно. В любом случае, я пытаюсь делать простые вещи, объединяя их.

  • login является первым Observable<any>: если он завершится, я хочу отобразить результат (просто свойство токена):

    const login = this.userService.login({ username: username, password: password });

Получение токена кажется простым: login.pipe(map(res => res.token));

  • storage является вторым Obsevable<boolean>: он должен принимать token и возвращать его значение (Наблюдаемое, снова)

    const store = this.localStorage.setItem('token', token);

Как мне "передать" результат login (сопоставленный) в store (и заставить store ждать его)?

Попытка 1 , не знаю, ждет ли секунда, пока не завершится первая:

return this.userService.login({username: username, password: password})
  .pipe(
    map(res => res.token),
    mergeMap(token => this.localStorage.setItem(AUTH_TOKEN_KEY, token)),
    tap(res => console.log(res)) // boolean true
  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...