結論
引数は省略せずに書きましょう。
迷走時間30分。衝動書き。
概要
誤
new Promise(function(res, rej) {
resolve();
})
ReferenceError: resolve is not defined
が出る。
正しくは
正
new Promise(function(resolve, reject) {
resolve();
})
なぜ間違えたのか
リファレンスなどで書かれている長い変数名は省略する傾向にある。
resolve()
という書き方は、this.resolve()
=Promise.resolve()
の省略形だと思っていた。(意味不明)
アロー関数() => {}
で書いており、アロー関数の場合は(babelをかますと?)this
を手動でbind(this)
しなけれなならない的知識がついていた。
console.log(this)
とすると、グローバルのWindow
が返ってきていた。
よって、this
をPromise
にしようと悪戦苦闘。
JavaScript Promiseの本
のサンプルコードをコピペして見比べて発覚。
引数が関数パターンに弱い。
Promise理解していない。
$.ajaxとかでコールバックの無名関数の引数名を任意に変えるぐらいなんどもしているのだが…