gpt4 book ai didi

javascript - rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable.throw 不是函数

转载 作者:行者123 更新时间:2023-11-30 19:15:48 24 4
gpt4 key购买 nike

我将 Angular 6 与 rxjs^6.0.0 和 rxjs-compat^6.5.2 一起使用,但出现以下我无法解决的错误:

rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable.throw is not a function

我尝试了以下解决方案但没有成功:

这是我正在使用的代码:

import { Injectable, Inject } from "@angular/core";
import { HttpClient } from "@angular/common/http";
import { BehaviorSubject, throwError } from 'rxjs';
import { Observable } from 'rxjs/Observable';
import { map, tap, mergeMap } from 'rxjs/Operators';
import { Login } from "./login/login";
import { CurrentUser } from "./login/current-user";
import { Registration } from "./registrations/registration";

@Injectable()
export class AuthenticationService {
private currentUserSubject: BehaviorSubject<CurrentUser>;
public currentUser: Observable<CurrentUser>;

constructor(private httpClient: HttpClient,
@Inject("BASE_API_URL") private baseUrl: string) {
this.currentUserSubject = new BehaviorSubject<CurrentUser>(JSON.parse(localStorage.getItem('currentUser')));
this.currentUser = this.currentUserSubject.asObservable();
}

public get currentUserValue(): CurrentUser {
return this.currentUserSubject.value;
}

signIn<T>(login: Login) {
return this.httpClient.post<T>(`${this.baseUrl}api/authentication/login`, login)
.pipe(mergeMap(loginResult => {
return this.httpClient.get<Registration>(`${this.baseUrl}api/users/${loginResult.user.id}/registration`)
.pipe(map(registration => {
if (registration.registrationStatusId == 1)
return throwError('Registration is pending approval.');
else if (registration.registrationStatusId == 3)
return throwError('Registration has been rejected.');

let currentUser = new CurrentUser();
currentUser.identity = registration;
currentUser.identity.user = loginResult.user;
currentUser.token = loginResult.token;
currentUser.refreshToken = loginResult.refreshToken;

localStorage.setItem('currentUser', JSON.stringify(currentUser));
this.currentUserSubject.next(currentUser);
}));
}));
}
}

最佳答案

你的导入代码是正确的,但我认为你应该为 rxjs 和 rxjs-compact 使用相同的版本,所以更新你的 package.json

"rxjs": "^6.5.2",
"rxjs-compat": "^6.5.2"

然后删除 package-lock.json 然后再次运行 npm install

关于javascript - rxjs__WEBPACK_IMPORTED_MODULE_1__.Observable.throw 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58019828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com