Javascript 将状态设置为数据库查询的结果

Javascript 将状态设置为数据库查询的结果,javascript,react-native,expo,Javascript,React Native,Expo,我有一个这样的函数,可以从数据库中获取所有信息: retrieve() { db.transaction( tx => { tx.executeSql('select * from my_table', [], (trans, result) => { }); } ); } 现在我想将组件的状态设置为结果,但我不确定如何实现这一点。我尝试在retrieve()函数的不同位置添加以下内容,但没有成功

我有一个这样的函数,可以从数据库中获取所有信息:

  retrieve() {
    db.transaction(
      tx => {
       tx.executeSql('select * from my_table', [], (trans, result) => {
        });
      }    
    );
  }
现在我想将组件的
状态设置为
结果
,但我不确定如何实现这一点。我尝试在
retrieve()
函数的不同位置添加以下内容,但没有成功

this.setState({
  cardholders: result
});
你能试试这个吗

retrieve(){
数据库事务(
tx=>{
tx.executeSql('select*from my_table',[],(trans,result)=>{
这是我的国家({
持卡人:结果
});
});
}    
);
}

我是这样想的:

db.transaction(
  tx => {
   tx.executeSql('select * from MyScannedCards', [], (trans, result) => {
    var len = result.rows.length;
    for (i=0;i<len;i++){
      cardDetails = result.rows._array[i];
      this.setState({ cardholders: this.state.cardholders.concat(cardDetails) })
    }
    });
  }
);
db.transaction(
tx=>{
tx.executeSql('select*from MyScannedCards',[],(trans,result)=>{
var len=result.rows.length;

对于(i=0;i)数据库事务是否有可能异步运行?如果是这种情况,您必须链接以将
结果设置为
状态。