Resolve Javascript Promise outside the Promise constructor scope

es6-promise, javascript, promise

Solution

simple:

var promiseResolve, promiseReject;

var promise = new Promise(function(resolve, reject){
  promiseResolve = resolve;
  promiseReject = reject;
});

promiseResolve();

Problem

I have been using ES6 Promise. Ordinarily, a Promise is constructed and used like this ``` new Promise(function(resolve, reject){ if (someCondition){ resolve(); } else { reject(); } }); ``` But I have been doing something like below to take the resolve outside for the sake of flexibility. ``` var outsideResolve; var outsideReject; new Promise(function(resolve, reject) { outsideResolve = resolve; outsideReject = reject; }); ``` And later ``` onClick = function(){ outsideResolve(); } ``` This works fine, but is there an easier way to do this? If not, is this a good practice?

Original source

Related problems