質問: resolve; //resolveも保持しておく }); //とりあえずpromiseを保持しておく setTimeout(this.onTimeout.bind(this),1000); //1000msかかる処理があるとする return this.promise; } onTimeout(){ //処理完了 this.resoveFunction.call(promise); //一応できた } } ``` どう見てもイレギュラーな方法なので、良い書き方があれば知りたいです。
回答: > > きれいではない方法ですが、動作をさせることができたサンプルです。 > > どう見てもイレギュラーな方法なので、良い書き方があれば知りたいです。 > > > Promiseを拡張したDeferredというものが該当します。 考え方はterutaka-kondoさんの考えられた方法と余り変わりません。 https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred 詳しくは、この記事を読んでください。 polyfillを見ると考え方が一緒なのが分ります。