延迟反应本机的本机模块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 (将#修改为@)