blob: 86313d9a322714f75eb7cc906b799ff25a78763e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/* 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 };
};
|