在本地反应中如何在Promise catch块中使用“this”?
this.guestErrorAlert();
在
GuestApi
.guestLogin()
.then(function (response) {
GuestApi.onSuccess(response);
return response;
})
.then(() => this.openLanguageStartupScreen())
.catch(function (error) {
GuestApi.onError();
console.log(error);
this.guestErrorAlert();
});
答案 0 :(得分:2)
问题在于范围,使用胖箭来解决问题。
将此代码块替换为:
.catch((error) => {
GuestApi.onError();
console.log(error);
this.guestErrorAlert();
});
答案 1 :(得分:0)
如评论中所提到的,您可以使用箭头功能,也可以定义一个函数并将其绑定。
示例:
let catchCallback = function() {...};
catchCallback = catchCallback.bind(this);
GuestApi.guestLogin()
.then(...)
.catch(catchCallback);
希望这有帮助!