@@ -69,7 +69,7 @@ export default class OptimizelyUserContext {
69
69
options : OptimizelyDecideOptions [ ] = [ ]
70
70
) : OptimizelyDecision {
71
71
72
- return this . optimizely . decide ( this , key , options ) ;
72
+ return this . optimizely . decide ( this . cloneUserContext ( ) , key , options ) ;
73
73
}
74
74
75
75
/**
@@ -85,7 +85,7 @@ export default class OptimizelyUserContext {
85
85
options : OptimizelyDecideOptions [ ] = [ ] ,
86
86
) : { [ key : string ] : OptimizelyDecision } {
87
87
88
- return this . optimizely . decideForKeys ( this , keys , options ) ;
88
+ return this . optimizely . decideForKeys ( this . cloneUserContext ( ) , keys , options ) ;
89
89
}
90
90
91
91
/**
@@ -97,7 +97,7 @@ export default class OptimizelyUserContext {
97
97
options : OptimizelyDecideOptions [ ] = [ ]
98
98
) : { [ key : string ] : OptimizelyDecision } {
99
99
100
- return this . optimizely . decideAll ( this , options ) ;
100
+ return this . optimizely . decideAll ( this . cloneUserContext ( ) , options ) ;
101
101
}
102
102
103
103
/**
@@ -108,4 +108,12 @@ export default class OptimizelyUserContext {
108
108
trackEvent ( eventName : string , eventTags ?: EventTags ) : void {
109
109
this . optimizely . track ( eventName , this . userId , this . attributes , eventTags ) ;
110
110
}
111
+
112
+ private cloneUserContext ( ) : OptimizelyUserContext {
113
+ return new OptimizelyUserContext ( {
114
+ optimizely : this . getOptimizely ( ) ,
115
+ userId : this . getUserId ( ) ,
116
+ attributes : this . getAttributes ( ) ,
117
+ } )
118
+ }
111
119
}
0 commit comments