@@ -691,23 +691,31 @@ export class ManagedStorage {
691691 static get < T > ( key : string ) : T | undefined ;
692692 static get < T > ( key : string , defaultValue : T ) : T ;
693693 static get < T > ( key : string , defaultValue ?: T ) {
694- return new Promise ( ( resolve : ( result : T | undefined ) => void ) => {
695- if ( chrome . storage . managed ) {
696- chrome . storage . managed . get ( ( data ) => {
697- if ( chrome . runtime . lastError ) {
698- return resolve ( defaultValue ) ;
699- }
700- if ( data ) {
701- if ( data [ key ] ) {
702- return resolve ( data [ key ] ) ;
694+ const managedStoragePromise = new Promise (
695+ ( resolve : ( result : T | undefined ) => void ) => {
696+ if ( chrome . storage . managed ) {
697+ chrome . storage . managed . get ( ( data ) => {
698+ if ( chrome . runtime . lastError ) {
699+ return resolve ( defaultValue ) ;
703700 }
704- }
705- return resolve ( defaultValue ) ;
706- } ) ;
707- } else {
708- // no available in Safari
709- resolve ( defaultValue ) ;
701+ if ( data ) {
702+ if ( data [ key ] ) {
703+ return resolve ( data [ key ] ) ;
704+ }
705+ }
706+ return resolve ( defaultValue ) ;
707+ } ) ;
708+ } else {
709+ // no available in Safari
710+ resolve ( defaultValue ) ;
711+ }
710712 }
713+ ) ;
714+
715+ const timeoutPromise = new Promise ( ( resolve ) => {
716+ setTimeout ( ( ) => resolve ( defaultValue ) , 10 ) ;
711717 } ) ;
718+
719+ return Promise . race ( [ managedStoragePromise , timeoutPromise ] ) ;
712720 }
713721}
0 commit comments