React Native fetch promise .then()不立即执行

时间:2017-08-17 14:13:33

标签: javascript firebase react-native

我使用React Native为iOS和Android构建应用。在那里,我只需轻按一个按钮就可以从外部函数调用fetch函数。 fetch函数向链接发送POST请求并获取JSON响应(JSON是正确的,以各种方式使用Postman进行测试)。

问题是.then()之后的代码不是立即执行的,而是在我点击屏幕或使用导航返回或执行某种小动作之后。这是我使用的代码:

从功能调用代码

constructor(props) {
  super(props);
  console.log(this.props.navigation.state.params.email);

  this.state = {
    email: props.navigation.state.params.email,
    value: '',
    pressed: false
  };

  this.verify = this.verify.bind(this);
}

BINDING 我也在构造函数中绑定此函数,如下所示:

<Button
  disabled={this.state.pressed}
  onPress={this.verify}
  >{!this.state.pressed ? 'Verify' : 'Verifying...'}</Button>

从用户界面调用功能

response.status(200).send({status: 200, token: "ABC"});

总结:获取功能不能立即解决承诺。

修改

更多信息:

获取链接实际上是Firebase功能的链接。该函数如何返回:

{{1}}

1 个答案:

答案 0 :(得分:0)

fetch将返回Promise个对象,then()添加的回调将在promise成功后调用。如果承诺失败,将调用catch()添加的回调。

您可以在https://developer.mozilla.org/en-US/docs/Web/API/Fetch_APIhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise中查看fetchpromise文档。