1. ホーム
  2. javascript

[解決済み] JavascriptのPromiseを関数スコープ外で解決する

2022-03-23 14:49:40

質問

ES6 Promiseを使用しています。

通常、Promiseは次のように構築され使用されます。

new Promise(function(resolve, reject){
    if (someCondition){
        resolve();
    } else {
        reject();
    } 
});

しかし、私は柔軟性を持たせるために、以下のようにresolveを外部に持ち出すようにしています。

var outsideResolve;
var outsideReject;
new Promise(function(resolve, reject) { 
    outsideResolve = resolve; 
    outsideReject = reject; 
});

そしてその後

onClick = function(){
    outsideResolve();
}

これはうまくいくのですが、もっと簡単な方法はないでしょうか?そうでない場合、これは良い方法なのでしょうか?

どのように解決するのですか?

シンプルに

var promiseResolve, promiseReject;

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

promiseResolve();