sqlite 值未分配给变量
sqlite value not assigning to variable
我目前正在使用 React 本机移动应用程序,在此过程中,我使用 SQLite 在 phone 中本地存储数据问题是我分配了一个变量 getToken
,它需要由我存储在 SQLite DB 中的令牌填充。下面是我尝试过的方法,它总是 returns 默认值。
function getTest() {
let getToken = 'ABC';
db.transaction(tx => {
tx.executeSql('SELECT * FROM Login', [], (tx, result) => {
getToken = result.rows.item(0).access_token;
});
});
return getToken;
}
出现问题是因为transaction和executeSQL是异步方法。尝试在 executeSQL 回调中使用 await 或 resolve promise。我按如下方式解决了这个问题
async function returnToken() {
return new Promise((resolve, reject) => {
db.transaction(tx => {
tx.executeSql('SELECT * FROM Login', [], (tx, result) => {
let accessToken = result.rows.item(0).access_token;
resolve(accessToken);
});
});
});
}
async function (config){
let token = await returnToken();
console.log('token', token);
}
我目前正在使用 React 本机移动应用程序,在此过程中,我使用 SQLite 在 phone 中本地存储数据问题是我分配了一个变量 getToken
,它需要由我存储在 SQLite DB 中的令牌填充。下面是我尝试过的方法,它总是 returns 默认值。
function getTest() {
let getToken = 'ABC';
db.transaction(tx => {
tx.executeSql('SELECT * FROM Login', [], (tx, result) => {
getToken = result.rows.item(0).access_token;
});
});
return getToken;
}
出现问题是因为transaction和executeSQL是异步方法。尝试在 executeSQL 回调中使用 await 或 resolve promise。我按如下方式解决了这个问题
async function returnToken() {
return new Promise((resolve, reject) => {
db.transaction(tx => {
tx.executeSql('SELECT * FROM Login', [], (tx, result) => {
let accessToken = result.rows.item(0).access_token;
resolve(accessToken);
});
});
});
}
async function (config){
let token = await returnToken();
console.log('token', token);
}