我有一个函数返回如下的数组数据。
function get_info_tb(){
var transaction = db.transaction(["mydb"]);
var objectStore = transaction.objectStore("mydb");
var request = objectStore.get("01");
request.onerror = function(event) {
alert("Unable to retrieve daa from database!");
};
request.onsuccess = function(event) {
var data = request.result;
};
return data;
}
如何为get_info_tb返回request.onsuccess的可变数据?
我对javascript的异步有点问题。 请帮帮我,谢谢大家。!
答案 0 :(得分:0)
您可以将其包装到Promise
并返回。 Promise有两个功能 - resolve
和reject
。您需要在成功调用resolve
和reject
时使用适当的参数进行错误调用。之后与then
链接,您可以获得这些结果。 then
接受2个参数,一个用于成功,一个用于失败。您从resolve
和reject
传递的数据将传递给then
函数相应的回调。
function get_info_tb() {
return new Promise((resolve, reject) => {
var transaction = db.transaction(["mydb"]);
var objectStore = transaction.objectStore("mydb");
var request = objectStore.get("01");
request.onerror = function(event) {
reject();
};
request.onsuccess = function(event) {
resolve(request.result);
};
});
}
并使用
get_info_tb().then(data => { /* This is the success */ },
err => { /* This is the error*/ },)