Javascript IndexedDb:读取并返回对象
下面是我用来从localdb检索信息的代码:Javascript IndexedDb:读取并返回对象,javascript,indexeddb,Javascript,Indexeddb,下面是我用来从localdb检索信息的代码: function getById(idObject, typeObjectStore, cb_function) { idObject = parseInt(idObject); var objectStore = db.transaction(typeObjectStore).objectStore(typeObjectStore); var request = objectStore.get(idO
function getById(idObject, typeObjectStore, cb_function)
{
idObject = parseInt(idObject);
var objectStore = db.transaction(typeObjectStore).objectStore(typeObjectStore);
var request = objectStore.get(idObject);
request.onerror = function(event) {
console.log('Error when loading ' + typeObjectStore);
};
request.onsuccess = function(event) {
cb_function(request.result);
};
}
我已经阅读了很多文档,我可以看到检索到的内容通常直接打印在cb_函数(回调函数)中。
我想知道是否有可能直接返回对象,这样我就可以在代码的其余部分利用它了
这样做是行不通的,但你会得到我想要做的:
request.onsuccess = function(event) {
return(request.result);
};
考虑到检索数据的异步方式,恐怕是不可能的,但我想确认一下
先谢谢你
问候,
b loul无法以这种方式返回值。回调函数是异步调用的,因为request.onsuccess是异步调用的。return语句是同步的。您需要知道如何使用indexedDB。编写AJAX主要是通过传递回调来完成的,回调是一种简单的方法 并不是每个人都喜欢CPS,但它是一种用代码表示异步操作的非常强大和简单的方法,在每个JavaScript程序员的职业生涯中,您迟早都应该了解它 如果你一定要退货,你可以退货。承诺不容易学会如何使用,需要大量的理解,因此请谨慎行事
就个人而言(我的主观意见),我不建议尝试使用承诺。我建议你多了解一些。可以使用bind来避免编写嵌套函数。Bind也很难学会如何使用,但它也提供了一种避免嵌套函数的优雅方法。Thank,将查看并绑定,同时将继续打印。