我使用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}}
答案 0 :(得分:0)
fetch
将返回Promise
个对象,then()
添加的回调将在promise成功后调用。如果承诺失败,将调用catch()
添加的回调。
您可以在https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise中查看fetch
和promise
文档。