需要从数据库事务反应本机返回数据



我是主组件中react native的初学者,我调用数据库执行命令,然后我需要为我返回数据,但在运行控制台后,未定义日志可以帮助我解决这个问题。谢谢

我的主要组件:

const requestJob = async () => {
let queryselect = 'SELECT * FROM tbl_messages ';
var Result = await Select(queryselect);
if (Result == false) {
console.log('no data')
} else {
console.log(Result);
}
}

在我的数据库组件中

var db = openDatabase({ name: 'message.db', createFromLocation: 1 });
db.transaction(tx => {
tx.executeSql(
query,
[],
(tx, results) => {
var len = results.rows.length;
if (len == 0) {
console.log('no ');
return false;
} else {
var temp = [];
for (let i = 0; i < results.rows.length; ++i) {
temp.push(results.rows.item(i));
}
return temp;
}
}
);
});    

}

使用Promise

export const get = () => {
return new Promise((resolve, reject) => {
db.transaction(tx => {
tx.executeSql(
query,
[],
(tx, results) => {
var len = results.rows.length;
if (len == 0) {
console.log('no ');
return false;
} else {
var temp = [];
for (let i = 0; i < results.rows.length; ++i) {
temp.push(results.rows.item(i));
}
return temp;
}
}
);
});
});

};

并读取:

const [results, setResults] = useState([]);
const Read = async () => {
const results = await get();
console.log(results)
setResult(results);
}
useEffect(() => {
read();
}, []);

最新更新