@@ -116,7 +116,7 @@ function queueSync(bidderCodes, gdprConsent) {
116
116
( response ) => {
117
117
try {
118
118
response = JSON . parse ( response ) ;
119
- response . bidder_status . forEach ( bidder => doBidderSync ( bidder . usersync . type , bidder . usersync . url , bidder . bidder ) ) ;
119
+ doAllSyncs ( response . bidder_status ) ;
120
120
} catch ( e ) {
121
121
utils . logError ( e ) ;
122
122
}
@@ -128,24 +128,39 @@ function queueSync(bidderCodes, gdprConsent) {
128
128
} ) ;
129
129
}
130
130
131
+ function doAllSyncs ( bidders ) {
132
+ if ( bidders . length === 0 ) {
133
+ return ;
134
+ }
135
+
136
+ const thisSync = bidders . pop ( ) ;
137
+ if ( thisSync . no_cookie ) {
138
+ doBidderSync ( thisSync . usersync . type , thisSync . usersync . url , thisSync . bidder , doAllSyncs . bind ( null , bidders ) ) ;
139
+ } else {
140
+ doAllSyncs ( bidders ) ;
141
+ }
142
+ }
143
+
131
144
/**
132
145
* Run a cookie sync for the given type, url, and bidder
133
146
*
134
147
* @param {string } type the type of sync, "image", "redirect", "iframe"
135
148
* @param {string } url the url to sync
136
149
* @param {string } bidder name of bidder doing sync for
137
150
*/
138
- function doBidderSync ( type , url , bidder ) {
151
+ function doBidderSync ( type , url , bidder , done ) {
139
152
if ( ! url ) {
140
153
utils . logError ( `No sync url for bidder "${ bidder } ": ${ url } ` ) ;
154
+ done ( ) ;
141
155
} else if ( type === 'image' || type === 'redirect' ) {
142
156
utils . logMessage ( `Invoking image pixel user sync for bidder: "${ bidder } "` ) ;
143
- utils . triggerPixel ( url ) ;
157
+ utils . triggerPixel ( url , done ) ;
144
158
} else if ( type == 'iframe' ) {
145
159
utils . logMessage ( `Invoking iframe user sync for bidder: "${ bidder } "` ) ;
146
- utils . insertUserSyncIframe ( url ) ;
160
+ utils . insertUserSyncIframe ( url , done ) ;
147
161
} else {
148
162
utils . logError ( `User sync type "${ type } " not supported for bidder: "${ bidder } "` ) ;
163
+ done ( ) ;
149
164
}
150
165
}
151
166
0 commit comments