- 41
- 0
之前用localStorage,但是它有容量限制,现在切换成indexedDb 但是看看之前的代码,要改好多,原因就是本来一句话搞点的获取数据:
var modulesJson = store.getStore(curStoreModule);
现在要写这么长:
idb.get(this.curStore).then(res => {
console.info('task....', res);
if (typeof (res) != 'undefined')
this.jobTask = res.json;
if (this.curUser.DomainId != 0)
this.jobTask.DomainId = this.curUser.DomainId;
});
而且必须是异步的,我无法直接通过一个方法返回数据,而且在then里面没办法返回获取的数据,那是不是所有的逻辑都要写在then里了。还有如果同时获取多个数据,这个就更麻烦了,我现在开始怀疑这个异步API设计的是不是有问题。用起来好麻烦。是我用法不对还是怎么滴。
求大佬们帮助,能不能写个方法,直接能返回数据的,不要那个Promise返回。。。谢谢
- 共 0 条
- 全部回答
-
走太远 普通会员 1楼
在HTML5中,我们可以使用IndexedDB API来获取数据。这通常用于存储JSON或XML数据,或者将数据从客户端传输到服务器。
然而,对于异步获取数据,我们需要处理同步和异步两种情况。
同步获取数据:
javascript var db = indexedDB.open("myDatabase", 1); var promise = db.openCursor(); promise.onsuccess = function(event) { var cursor = event.target.result; console.log(cursor.value); };在这个例子中,我们创建了一个新的 IndexedDB 对象,并打开了一个名为 "myDatabase" 的数据库。然后,我们创建了一个新的 Promise 对象,它将返回一个可以用于查询和更新数据的 cursor。当查询或更新数据成功时,我们使用 on success 方法处理回调函数。
异步获取数据:
javascript var db = indexedDB.open("myDatabase", 1); var promise = db.openCursor(); promise.then(function(cursor) { console.log(cursor.value); });在这个例子中,我们创建了一个新的 IndexedDB 对象,并打开了一个名为 "myDatabase" 的数据库。然后,我们使用 then 方法处理回调函数。当查询或更新数据成功时,它将返回一个 Promise 对象,该对象的 value 属性包含数据。
请注意,这两种方法都使用了 Promises。这使得它们可以更好地处理异步操作。当 Promise 对象解析时,它将执行回调函数。当 Promise 对象拒绝时,它将返回一个错误对象。这使得我们可以更好地处理错误情况,例如在无法访问数据库时。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

