gecko-dev/devtools/shared/defer.js
Nicolas Chevobbe 64388a8a8a Bug 1585271 - Remove custom defer function in Front.js. r=ochameau.
We weren't using the shared defer function  because
at some point it was still using Promise.jsm,
which is slow.
But since Bug 1388054, it's not using Promise.jsm anymore,
so we can use the shared function.

We take this as an opportunity to clean up
the shared defer file comments.

Differential Revision: https://phabricator.services.mozilla.com/D47739

--HG--
extra : moz-landing-system : lando
2019-10-01 09:41:24 +00:00

26 lines
855 B
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/**
* Create a Promise and return it in an object with its resolve and reject functions.
* This is useful when you need to settle a promise in a different location than where
* it is created.
*
* @returns {Object} An object with the following properties:
* - {Promise} promise: The created DOM promise
* - {Function} resolve: The resolve parameter of `promise`
* - {Function} reject: The reject parameter of `promise`
*
*/
module.exports = function defer() {
let resolve, reject;
const promise = new Promise(function(res, rej) {
resolve = res;
reject = rej;
});
return { resolve, reject, promise };
};