File tree Expand file tree Collapse file tree 5 files changed +16
-16
lines changed Expand file tree Collapse file tree 5 files changed +16
-16
lines changed Original file line number Diff line number Diff line change @@ -394,7 +394,7 @@ export class FirestoreClient {
394
394
395
395
// NOTE: This will immediately call the listener, so we make sure to
396
396
// set it after localStore / remoteStore are started.
397
- this . persistence . setPrimaryStateListener ( isPrimary =>
397
+ await this . persistence . setPrimaryStateListener ( isPrimary =>
398
398
this . syncEngine . applyPrimaryState ( isPrimary )
399
399
) ;
400
400
} ) ;
Original file line number Diff line number Diff line change @@ -185,9 +185,11 @@ export class IndexedDbPersistence implements Persistence {
185
185
} ) ;
186
186
}
187
187
188
- setPrimaryStateListener ( primaryStateListener : PrimaryStateListener ) : void {
188
+ setPrimaryStateListener (
189
+ primaryStateListener : PrimaryStateListener
190
+ ) : Promise < void > {
189
191
this . primaryStateListener = primaryStateListener ;
190
- primaryStateListener ( this . isPrimary ) ;
192
+ return primaryStateListener ( this . isPrimary ) ;
191
193
}
192
194
193
195
/**
Original file line number Diff line number Diff line change @@ -70,9 +70,11 @@ export class MemoryPersistence implements Persistence {
70
70
return [ this . clientId ] ;
71
71
}
72
72
73
- setPrimaryStateListener ( primaryStateListener : PrimaryStateListener ) : void {
73
+ setPrimaryStateListener (
74
+ primaryStateListener : PrimaryStateListener
75
+ ) : Promise < void > {
74
76
// All clients using memory persistence act as primary.
75
- primaryStateListener ( true ) ;
77
+ return primaryStateListener ( true ) ;
76
78
}
77
79
78
80
getMutationQueue ( user : User ) : MutationQueue {
Original file line number Diff line number Diff line change @@ -106,7 +106,9 @@ export interface Persistence {
106
106
*
107
107
* PORTING NOTE: This is only used for Web multi-tab.
108
108
*/
109
- setPrimaryStateListener ( primaryStateListener : PrimaryStateListener ) : void ;
109
+ setPrimaryStateListener (
110
+ primaryStateListener : PrimaryStateListener
111
+ ) : Promise < void > ;
110
112
111
113
/**
112
114
* Returns the IDs of the clients that are currently active. If multi-tab
Original file line number Diff line number Diff line change @@ -478,7 +478,7 @@ abstract class TestRunner {
478
478
await this . remoteStore . start ( ) ;
479
479
await this . syncEngine . start ( ) ;
480
480
481
- this . persistence . setPrimaryStateListener ( isPrimary =>
481
+ await this . persistence . setPrimaryStateListener ( isPrimary =>
482
482
this . syncEngine . applyPrimaryState ( isPrimary )
483
483
) ;
484
484
@@ -872,15 +872,9 @@ abstract class TestRunner {
872
872
await this . syncEngine . start ( ) ;
873
873
await this . sharedClientState . start ( ) ;
874
874
875
- const deferred = new Deferred < void > ( ) ;
876
- // We need to wait for the processing in `applyPrimaryState` to complete,
877
- // but `setPrimaryStateListener` doesn't return a promise.
878
- this . persistence . setPrimaryStateListener ( isPrimary => {
879
- return this . syncEngine
880
- . applyPrimaryState ( isPrimary )
881
- . then ( deferred . resolve ) ;
882
- } ) ;
883
- await deferred . promise ;
875
+ await this . persistence . setPrimaryStateListener ( isPrimary =>
876
+ this . syncEngine . applyPrimaryState ( isPrimary )
877
+ ) ;
884
878
} ) ;
885
879
}
886
880
You can’t perform that action at this time.
0 commit comments