* @param {() => Promise<ModuleId[]>} fn function to run once unblocked * @returns {Promise<ModuleId[]>} result of fn
(fn)
| 360 | * @returns {Promise<ModuleId[]>} result of fn |
| 361 | */ |
| 362 | function waitForBlockingPromises(fn) { |
| 363 | if (blockingPromises === 0) return fn(); |
| 364 | return /** @type {Promise<ModuleId[]>} */ ( |
| 365 | new Promise(function (resolve) { |
| 366 | blockingPromisesWaiting.push(function () { |
| 367 | resolve(fn()); |
| 368 | }); |
| 369 | }) |
| 370 | ); |
| 371 | } |
| 372 | |
| 373 | /** |
| 374 | * @param {boolean | ApplyOptions=} applyOnUpdate apply the update right away |