如何解决承诺?

时间:2020-06-09 15:09:24

标签: javascript react-native

我使用react native开发应用程序,并且在遇到错误时在控制台backend.js:32 Possible Unhandled Promise Rejection (id: 0):中发出了警告。

我有2个组成部分。这是来自父组件 Sms-Registration.js

的代码段
signInWithPhoneNumber = (phone) => {
    return new Promise((resolve, reject) => {
        return (
          // this function authenticate user in firebase
          auth()
            .signInWithPhoneNumber(phone)
            .then((confirmResult) => {
              this.setState({
                formSubmitted: false,
              });
              this.getSignInResult(confirmResult, phone);
              return resolve();
            })
            .catch((error) => {
              throw error;
            })
        );
      });
  };

render() {
    return (
      <PhoneNumber
            signInWithPhoneNumber={this.signInWithPhoneNumber}
          />
    );
  }

这是 PhoneNumber.js 代码段

signInWithPhoneNumber = () => {
    this.props
      .signInWithPhoneNumber(
        `${this.state.countryObj.dial_code}${this.state.phoneNumber}`,
      )
      .then((result) => console.log('new result', result))
      .catch((error) => console.log('new error', error));
  };

有人可以帮助我解决这个承诺吗?

1 个答案:

答案 0 :(得分:1)

您需要处理拒绝问题,这意味着您必须在catch块内以与一切都顺利的方式调用resolve相同的方式调用