0
を取得するコードの簡易版です。ネストされた矢印の機能は、ここでグローバルスコープに
class Service {
static _runRequest = (request, success, failure) => {
request.then(
(response) => {
if (ResponseHelper.wasSuccessful(response)) {
success(response);
}
else if (ResponseHelper.wasUnauthorized(response)) {
SessionHelper.refreshCurrentSession().then(
(refreshResponse) => {
if (refreshResponse === true) {
this._runRequest(request, success, failure);
}
}
);
}
}
);
}
}
問題は、セッションが正常に更新された場合は、再度_runRequest
を呼び出すとき、this
はグローバルスコープを指している、ということです。
これを修正する理由と方法を教えてください。 this
は、ネストされた関数がいくつあっても同じままではいけませんか?あなたのコードで
その作業スニペットを入力してください問題を実証しています。 – trincot
'Service'を指すようにしたい場合は、' _runRequest'として矢印を使用しないで、通常の関数を使用してください。 – loganfsmyth
@loganfsmythこれで解決しました!うわー、彼らが言うように、矢印の機能は銀色の弾丸ではありません。私はそれを受け入れることができるように適切な回答を作成してください。 – dccarmo