/** * Defer is a factory that would create a wrapped Promise object with exposed * resolve / reject API so that we can easily resolve / reject promise from * outside. * * This is mostly useful when you are going to queue promises for later use. * * API: * * var defer = Defer(); * defer.resolve('return value'); * defer.reject('reason') * * @module Defer */ define(function(require) { 'use strict'; var Defer = function() { this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; }); }; return function ctor_defer() { return new Defer(); }; });