在承诺捕获块中访问此内容



在反应原生中,我如何在承诺捕获块中使用"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();
      });

问题在于范围,使用胖箭头解决问题。

将此代码块替换为:

.catch((error) => {
    GuestApi.onError();
    console.log(error);
    this.guestErrorAlert();
});

如注释中所述,您可以使用箭头函数,也可以定义一个函数并绑定它。

例:

let catchCallback = function() {...};
catchCallback = catchCallback.bind(this);
GuestApi.guestLogin()
      .then(...)
      .catch(catchCallback);

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新