Deferred api for Promise by Mozilla const dfd = new Deferred(); dfd.promise.then(x => { alert(x); }) dfd.resolve(42); // dfd.reject(/* some error */);