Javascript 如何同步使用localfower
我有一个Cordova移动应用程序,可以在localStorage中存储离线数据。最近,由于localStorage有5MB的限制,用户开始收到配额超出错误。我决定使用LocalFlow框架,但我注意到它是异步工作的。因为我不想将所有复杂的应用程序包装重写为回调函数,所以我想知道是否有某种方法可以使用localfow同步地等待getItem函数返回值 下面是我尝试执行的代码示例:Javascript 如何同步使用localfower,javascript,callback,local-storage,localforage,Javascript,Callback,Local Storage,Localforage,我有一个Cordova移动应用程序,可以在localStorage中存储离线数据。最近,由于localStorage有5MB的限制,用户开始收到配额超出错误。我决定使用LocalFlow框架,但我注意到它是异步工作的。因为我不想将所有复杂的应用程序包装重写为回调函数,所以我想知道是否有某种方法可以使用localfow同步地等待getItem函数返回值 下面是我尝试执行的代码示例: localforage.setItem('testKey', 'testValue', function() {
localforage.setItem('testKey', 'testValue', function() {
var value = getValue('testKey');
console.log(value); // here I get undefined, but I want to get a value
});
function getValue(key) { // I want this function to return value
var result;
localforage.getItem(key, function(value) {
result = value;
});
return result;
}
我希望getValue在不更改任何其他代码的情况下返回一个值我没有测试过这一点,也没有使用LocalFound的经验,但是我想如果您将结果设置为回调的返回值并返回它,这就是您要找的
function getValue(key) {
var result = localforage.getItem(key, function(err, value) {
return value;
});
return result;
}
我没有测试过这一点,也没有使用LocalFough的经验,但是我想如果您将结果设置为回调的返回值并返回它,那么这就是您想要的结果
function getValue(key) {
var result = localforage.getItem(key, function(err, value) {
return value;
});
return result;
}
据此,
LocalFower有一个双API,允许您使用节点样式
回电或承诺。如果你不确定哪一个适合你,
建议使用承诺
所以如果你愿意,你可以用任何一种。如果使用承诺,则可以使用async/wait等待结果
localforage.setItem('testKey', 'testValue', async function() {
var value = await getValue('testKey')
console.log(value); // here I get undefined, but I want to get a value
});
async function getValue(key) {
var result = await localforage.getItem(key);
return result;
}
据此,
LocalFower有一个双API,允许您使用节点样式
回电或承诺。如果你不确定哪一个适合你,
建议使用承诺
所以如果你愿意,你可以用任何一种。如果使用承诺,则可以使用async/wait等待结果
localforage.setItem('testKey', 'testValue', async function() {
var value = await getValue('testKey')
console.log(value); // here I get undefined, but I want to get a value
});
async function getValue(key) {
var result = await localforage.getItem(key);
return result;
}
请点击此处:
jsidle here:,使用async/await:
试一试{
const value=await localfollow.getItem'somekey';
//此代码在加载值后运行
//从离线商店。
console.logvalue;
}犯错误{
//如果出现任何错误,将运行此代码。
console.logerr;
}
,使用异步/等待:
试一试{
const value=await localfollow.getItem'somekey';
//此代码在加载值后运行
//从离线商店。
console.logvalue;
}犯错误{
//如果出现任何错误,将运行此代码。
console.logerr;
}
通过这种方式,LocalFower返回Promisesee my update,LocalFower中的回调首先是节点样式的错误参数,这两种方式都不起作用,因为LocalFower返回Promise。真正地我不知道最新情况解析方式也不起作用。这种方式LocalFower返回Promisesee my update,LocalFower中的回调首先是节点样式的错误参数。这两种方式都不起作用,因为LocalFower返回Promise。真正地我不知道最新情况JSON.parse方法也不起作用。我尝试了这种方法,但也不起作用:/。请看:是的,但现在我需要将所有调用getValue的函数都更改为async。我想换一个地方,不要破坏这个脆弱的旧应用程序:我不认为还有其他方法。由于异步的性质,除非您有数据,否则您必须停止代码向前移动,并且为此您必须使用回调或async/await。我尝试了这种方法,但它也不起作用:/。请看:是的,但现在我需要将所有调用getValue的函数都更改为async。我想换一个地方,不要破坏这个脆弱的旧应用程序:我不认为还有其他方法。由于异步的性质,除非您有数据,否则您必须停止代码向前移动,并且为此您必须使用回调或异步/等待