Closed2

await/catchでの、catchメソッドへの関数の渡し方

まつだけまつだけ

たとえば、クラスAを継承したクラスBで、

const res = await cart.update(cart.id, data).catch(() => this.sendServerError());

こういうメソッドがあるとする。
sendServerError()はクラスAのメソッドで、そのなかでクラスAのメンバー変数であるresを参照しているとする。
そのときに、

const res = await cart.update(cart.id, data).catch(this.sendServerError);

とすると、resundefinedになってしまう。
これはなぜか。

まつだけまつだけ

後者だと、thisがcatchの呼び出し元になってしまうからっぽい。

このスクラップは2021/11/09にクローズされました