"use strict"; // FIXME: Can we use p-defer here instead? module.exports = function createDefer() { let resolveFunc, rejectFunc; // NOTE: This works because the `new Promise` callback gets executed synchronously. let promise = new Promise((resolve, reject) => { resolveFunc = resolve; rejectFunc = reject; }); return { promise: promise, defer: { resolve: resolveFunc, reject: rejectFunc } }; };