我正在使用 Lawnchair 将数据保存在 js 中,并为我的移动应用程序检索它。
我的 js 文件中有这个。
$(document).ready(function() {
//Lawchair set up
db = Lawnchair({name: 'db'},function(e){
console.log('storage open');
});
//store the 'username' key in storage
db.save({key:"username", value: "john"});
var name = ""
db.get("username", function(obj){
name = obj.value;
})
alert(name);
});
问题是我的名字中总是带有“”。我永远无法在 Lawnchair 对象的“get”回调函数中设置任何变量。我错过了什么吗?
如有任何帮助,我们将不胜感激。
谢谢。
最佳答案
数据库操作是异步的。将您的警报放入“.get()”函数的回调内部。
作为一般规则,任何时候您看到这样的 JavaScript API:
something(param, param, ... , function(result, result, ...) {
// ...
});
很有可能该函数可能是异步机制,并且您提供的回调函数只会在事件实际发生时才会被调用。在这些情况下,您必须构建自己的代码,以便操作完成后需要执行的事件在回调内部的代码中完成。
(情况并非总是如此;例如,某些函数式编程 API 将函数作为参数。)
关于javascript - Lawnchair javascript 数据 "get"不允许我分配给另一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9278766/