如何解决延迟反应本机的本机模块android
我正在使用 React Native 的原生模块检索谷歌拟合数据。
逻辑运行良好,我得到了预期的结果。
问题在于检索延迟。
我点击了我的应用程序上的一个按钮,它调用了 Native Module 方法,如下所示
js 文件:
click = async() => {
await NativeModules.MyHealth.getHealthData((err,result) => {
let res = JSON.parse(result)
let unique = _.uniqWith(res?.HealthData,_.isEqual);
this.setState({hd: [...unique],full: true})
console.log("HD:",this.state.hd) //returns empty for first click. second click i get all the values
});
}
在我的 ReactModule.java 中
@ReactMethod
public void getHealthData(Callback cb) {
try{
final Activity activity = getCurrentActivity();
if(activity != null && activity instanceof MainActivity){
JSONObject obj = ((MainActivity) activity).getHealthValues(); //main method
cb.invoke(null,String.valueOf(obj));
}
}catch (Exception e){
Log.i("error","error here!!!!");
cb.invoke(e.toString(),null);
}
}
MainActivity.java
public JSONObject getHealthValues() {
readHistoryData(); //runs my fitness.getHistoryClient query
return json;
}
我想弄清楚为什么数据没有在第一次点击时流向前端js文件。但是我第二次点击就得到了数据。
有人对这种行为有任何线索吗??
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。