Почему ʻof () `observable не выполняется next ()? - PullRequest
0 голосов
/ 21 февраля 2019

У меня такая ситуация:

 this._userService
            .create(user)
            .pipe(
                switchMap(res => {
                    if (this.accountStore.accounts.length > 0) {
                        return this._accountsService.manageAccounts(
                            accounts,
                            res.idUser
                        );
                    } else return of();
                })
            )
            .subscribe(
                _ => {
                    this._router.navigate(["/app/main/user/"]);
                },
                () => (this.saving = false)
            );

, если учетные записи выше 0, все работает нормально.Но если он переходит к блоку else, return of() не выполняет next () для перехода к маршруту пользователя;

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вам необходимо передать значение в of для выполнения следующего оператора или подписчика.В этом случае я просто передаю null как of(null)

0 голосов
/ 21 февраля 2019

Аналогично этому ответу , но отличается из-за версий, вам нужно использовать of({}).pipe(take(1)), чтобы создать пустой наблюдаемый объект и вызвать next.

Для вашего кода:

...
} else return of({}).pipe(take(1));
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...