Welcome
自分の興味あるテーマを中心に、図解多めに記事を作成していきたいと思います。
自分の興味あるテーマを中心に、図解多めに記事を作成していきたいと思います。
promiseを使用してthen()でクラスメソッドを使おうとしたら
Uncaught (in promise) TypeError: this.* is not a function
というエラーが出ました。
console.log()でthisを見てみるとthisはwindowでした。
thisはメソッドが呼び出されるオブジェクトを指しますが、then()は明示的にcallしたわけではないのでwindowがthisとなってしまうようです。
thisを保存したい場合は、
.then(() => this.method2())
や
var that = this;
// ...
.then(function() { that.method2() })
のようにすることでthen()内でクラスメソッドを使用することができるようになりました。