@@ -42,7 +42,7 @@ class BrowserClientImpl extends LDClientImpl {
4242 private readonly _plugins ?: LDPlugin [ ] ;
4343 private _initializedPromise ?: Promise < LDWaitForInitializationResult > ;
4444 private _initResolve ?: ( result : LDWaitForInitializationResult ) => void ;
45- private _isInitialized : boolean = false ;
45+ private _initializeResult ?: LDWaitForInitializationResult ;
4646
4747 constructor (
4848 clientSideId : string ,
@@ -224,10 +224,11 @@ class BrowserClientImpl extends LDClientImpl {
224224 }
225225 const res = await super . identifyResult ( context , identifyOptionsWithUpdatedDefaults ) ;
226226 if ( res . status === 'completed' ) {
227- this . _isInitialized = true ;
228- this . _initResolve ?.( { status : 'complete' } ) ;
227+ this . _initializeResult = { status : 'complete' } ;
228+ this . _initResolve ?.( this . _initializeResult ) ;
229229 } else if ( res . status === 'error' ) {
230- this . _initResolve ?.( { status : 'failed' , error : res . error } ) ;
230+ this . _initializeResult = { status : 'failed' , error : res . error } ;
231+ this . _initResolve ?.( this . _initializeResult ) ;
231232 }
232233
233234 this . _goalManager ?. startTracking ( ) ;
@@ -250,10 +251,9 @@ class BrowserClientImpl extends LDClientImpl {
250251 return this . _promiseWithTimeout ( this . _initializedPromise , timeout ) ;
251252 }
252253
253- if ( this . _isInitialized ) {
254- return Promise . resolve ( {
255- status : 'complete' ,
256- } ) ;
254+ // If initialization has already completed (successfully or failed), return the result immediately
255+ if ( this . _initializeResult ) {
256+ return Promise . resolve ( this . _initializeResult ) ;
257257 }
258258
259259 if ( ! this . _initializedPromise ) {
0 commit comments