Bug 1867560 [wpt PR 43456] - [FLEDGE]: Add allSlotsRequestedSizes to AuctionConfig...
[gecko.git] / devtools / shared / defer.js
blob86313d9a322714f75eb7cc906b799ff25a78763e
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 "use strict";
7 /**
8  * Create a Promise and return it in an object with its resolve and reject functions.
9  * This is useful when you need to settle a promise in a different location than where
10  * it is created.
11  *
12  * @returns {Object} An object with the following properties:
13  *   - {Promise} promise: The created DOM promise
14  *   - {Function} resolve: The resolve parameter of `promise`
15  *   - {Function} reject: The reject parameter of `promise`
16  *
17  */
18 module.exports = function defer() {
19   let resolve, reject;
20   const promise = new Promise(function (res, rej) {
21     resolve = res;
22     reject = rej;
23   });
24   return { resolve, reject, promise };