Promise コンストラクターコールバックのスコープ外にある Promise 解決コールバックにアクセスするにはどうすればいいですか? 質問する

Promise コンストラクターコールバックのスコープ外にある Promise 解決コールバックにアクセスするにはどうすればいいですか? 質問する

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

new Promise((resolve, reject) => {
  const obj = new MyEventEmitter();
  obj.onsuccess = (event) => { resolve(event.result); };
  obj.onerror = (event) => { reject(event.error); };
});

しかし最近、柔軟性のために、リゾルバをエグゼキュータ コールバックの外部に出すために次のようなことを行っています。

let outsideResolve;
let outsideReject;
new Promise((resolve, reject) => {
  outsideResolve = resolve; 
  outsideReject = reject; 
});

以降:

onClick = function() {
  outsideResolve();
}

これは問題なく動作しますが、これを行うより簡単な方法はありますか? そうでない場合、これは良い方法でしょうか?

ベストアンサー1

単純:

var promiseResolve, promiseReject;

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

promiseResolve();

おすすめ記事