我想要完成的是能夠從我的 getEmployees() 函式異步呼叫我的 getToken() 承諾,但不使其異步我的 getEmployees() 函式。
請有任何想法,并在此先非常感謝您。
員工服務
async getToken(): Promise < string > {
return await this._auth._token();
}
getEmployees(): Observable < EmpleadoTarjeta[] > {
const promiseSource = from(new Promise(async (resolve) => {
await this.getToken().then(tokenUser => resolve(tokenUser));
}));
let token: any;
promiseSource.subscribe(tokenPromise => token = tokenPromise);
const httpHeaders: HttpHeaders = new HttpHeaders({
tokenJPA: token,
});
console.log(token);
return this._httpClient
.get<EmpleadoTarjeta[]>('API', { headers: httpHeaders }
)
.pipe(
map(response => response.map(item => new EmpleadoTarjeta(item))),
tap((empleados) => {
this._empleados.next(empleados);
})
);
}
_auth.service
async _token(): Promise<string> {
const auth = getAuth();
return auth.currentUser.getIdTokenResult(true).then(async token => token.token);
}
更新
getEmpleados(): Observable<EmpleadoTarjeta[]> {
// const token: any = from(this.getToken()).toPromise().then(tokenUser
=> tokenUser);
const promiseSource: any = from(this.getToken());
const httpHeaders: HttpHeaders = new HttpHeaders({
tokenJPA: promiseSource.subscribe((tokenPromise: any) => {
console.log(tokenPromise);
return tokenPromise;
}),
});
return this._httpClient
.get<EmpleadoTarjeta[]>('http://localhost:5001/journeypadel/us-central1/fxManager_Empleados-empleadosRegistrados', { headers: httpHeaders }
)
.pipe(
map(response => response.map(item => new EmpleadoTarjeta(item))),
tap((empleados) => {
this._empleados.next(empleados);
})
);
}
我是這樣做的,但沒有用
uj5u.com熱心網友回復:
您可以將其用作:
const promiseSource = from(this.getToken());
更新
getEmpleados(): Observable<EmpleadoTarjeta[]> {
return from(this.getToken())
.pipe(
map((tokenUser) => new HttpHeaders({
tokenJPA: tokenUser
})),
switchMap((httpHeaders) => this._httpClient
.get<EmpleadoTarjeta[]>(
'http://localhost:5001/journeypadel/us-central1/fxManager_Empleados-empleadosRegistrados',
{ headers: httpHeaders }
)
.pipe(
map(response => response.map(item => new EmpleadoTarjeta(item))),
tap((empleados) => {
this._empleados.next(empleados);
})
))
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/333922.html
上一篇:如何在firebase中添加來自用戶的資料而不是替換已有的資料?
下一篇:使用Firebase規則鎖定檔案
