Я получаю ошибку You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.
в моем угловом проекте.По сути, я пытаюсь получить доступ к значению состояния хранилища в моем эффекте, как показано ниже:
@Effect()
getHoles$ = this.actions$.pipe(
ofType<GetTreeHoles>(HolesActions.GetTreeHoles),
withLatestFrom(this.store.pipe(select(getLastDocumentSnapshot))),
...
Однако, когда код пытается разрешить наблюдаемое ниже, он выдает ошибку.
this.store.pipe(select(getLastDocumentSnapshot))
Я попытался пошагово выполнить код, и понял, что код не работает в файле rxjs 'subscribeTo.js:
if (result instanceof Observable_1.Observable) {
Это, если оператор возвращает false
.Этот оператор if должен возвращать true, потому что хранилище расширяет Observable.Таким образом, код переходит к следующему оператору else и выдает ошибку:
else {
var value = isObject_1.isObject(result) ? 'an invalid object' : "'" + result + "'";
var msg = "You provided " + value + " where a stream was expected."
+ ' You can provide an Observable, Promise, Array, or Iterable.';
throw new TypeError(msg);
}
Я изменил код на что-то простое:
@Effect()
getHoles$ = this.actions$.pipe(
ofType<GetTreeHoles>(HolesActions.GetTreeHoles),
withLatestFrom(of(123)),
...
Однако, он все равно возвращает ту же ошибкуи происходит сбой из-за of(123)
, что для меня не имеет смысла.
Я удаляю строку с withLatestFrom
, и эффект работает отлично.
Я дважды проверил, я импортировал с помощью LastFrom правильно.
import { catchError, switchMap, withLatestFrom } from 'rxjs/internal/operators';
Моя версия:
"@angular/animations": "^6.1.10",
"@angular/cdk": "^6.4.7",
"@angular/common": "^6.1.10",
"@angular/compiler": "^6.1.10",
"@angular/core": "^6.1.10",
"@angular/forms": "^6.1.10",
"@angular/http": "^6.1.10",
"@angular/material": "^6.4.7",
"@angular/platform-browser": "^6.1.10",
"@angular/platform-browser-dynamic": "^6.1.10",
"@angular/router": "^6.1.10",
"@ngrx/effects": "^6.1.0",
"@ngrx/router-store": "^6.1.0",
"@ngrx/store": "^6.1.0",
"@ngx-translate/core": "^10.0.2",
"@ngx-translate/http-loader": "^3.0.1",
"core-js": "^2.5.4",
"firebase": "^5.5.3",
"rxjs": "~6.2.0",
Эта ошибка сводит меня с ума.Пожалуйста, помогите мне решить это.Спасибо.