HarmonyOS 如何在for循环中调用await

现在需要再for循环中进行插入db的操作,db会爆出Inner error. Inner code is -19的问题,code为14800000。 查询资料分析后觉得可能因为第一次插入没结束,就循环到下一次进行第二次插入。所以如何能在for循环中等待async方法的结束,再进行下一次循环。

HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

可通过async/await语法实现,参考示例:

async queryData(){
  {
    if (this.rdbStore == null) {
      console.error(Create Store1.db failed! store1 is null);
      return;
    }
  }
  try {
    let predicates: relationalStore.RdbPredicates = new relationalStore.RdbPredicates(“EMPLOYEE”);
    let resultSet = await this.rdbStore.query(predicates); // 查询所有数据
    console.info(Query data successfully! row count:${resultSet.rowCount});
    while (resultSet.goToNextRow()) {
      const id = resultSet.getLong(resultSet.getColumnIndex(“ID”));
      const name = resultSet.getString(resultSet.getColumnIndex(“NAME”));
      const age = resultSet.getLong(resultSet.getColumnIndex(“AGE”));
      const salary = resultSet.getDouble(resultSet.getColumnIndex(“SALARY”));
      console.info(id=${id}, name=${name}, age=${age}, salary=${salary});
      const tmp = new ItemBean(name, age.toString(), salary.toString());
      this.dbSet.push(tmp);
    }
    resultSet.close();
  } catch (err) {
    console.error(Query data failed! err code:${err.code}, err message:${err.message})
  }
}
分享
微博
QQ
微信
回复
4天前
相关问题
HarmonyOS await sleep方法
41浏览 • 1回复 待解决
await的性能
11浏览 • 1回复 待解决
HarmonyOS await fs.open()
46浏览 • 1回复 待解决
HarmonyOS异步await不起作用
456浏览 • 1回复 待解决
HarmonyOS 使用async 、await 的含义
108浏览 • 1回复 待解决
JS中如何使用Promise和async await
704浏览 • 1回复 待解决
HarmonyOS 如何在应用内调用Home键
13浏览 • 1回复 待解决
如何排查循环引用的问题
582浏览 • 1回复 待解决
Promise 与 Async/Await 的比较
510浏览 • 1回复 待解决