recommended method here은 fetchQuery 내부에 인증 토큰을 가져 오는 것입니다.
나머지 과제는 인증이 진행되는 동안 Relay가 여러 번 가져 오는 경우에도 비동기 인증 기능이 한 번만 호출되도록하는 것입니다. 우리는 싱글 톤 약속을 사용하여이 작업을 수행했습니다. fetchQuery에 대한 각 호출은 동일한 약속에 대해 정적 Promise.resolve() 메소드를 호출하므로 인증 호출이 완료되면 모든 fetchQuery 호출이 원하는 인증 정보로 계속 진행됩니다.
그래서 fetchQuery
은과 인증 토큰 (JWT)을 가져옵니다
const authToken = await AuthToken.get();
그리고 authToken에은 (타이프)과 같습니다
class AuthToken {
private static _accessTokenPromise: Promise<string>;
public static async get() {
if (!this._accessTokenPromise)
this._accessTokenPromise = this.AuthFunction(); // AuthFunction returns a promise
return await Promise.resolve(this._accessTokenPromise);
}
}