如何处理.topromise()在RXJS和Angular 13中的弃用



你好,我想弄清楚如何处理这个弃用的代码

const authCtx = (auth: AngularFireAuth) =>
setContext(async () => {
const token = await auth.idToken.pipe(take(1)).toPromise();
return {
headers: {
Authorization: `Bearer ${token}`,
},
};
});

我从Firebase获取jwt令牌并在用户登录时在graphQL模块上设置该令牌但我收到toPromise已弃用的警告它说我应该实现lastValueFrom或firstValueForm所以我想我可以这样做:

const authCtx = (auth: AngularFireAuth) =>
setContext(async () => {
const token = lastValueFrom(auth.idToken)
return {
headers: {
Authorization: `Bearer ${token}`,
},
};
});

我不太确定更新这段代码的正确方法是什么

你可以用firstValueFrom

来写这个
const authCtx = (auth: AngularFireAuth) =>
setContext(() =>
firstValueFrom(auth.idToken.pipe(
map(token => ({ headers: {
Authorization: `Bearer ${token}`
}}))
)
);

最新更新