我有设置和获取分散在我的 javascript 中的 WEBSql 数据的方法。这是我使用 jayData 获取数据的“get”函数:
function getProductRow(key){
console.debug("Product key.. " + key);
$data("Product")
.query("it.Key == productKey", { productKey: key})
.then(function(items) {
items.forEach(function(item) {
console.debug("item.value.. " + item.Value);
return item.Value;
});
});
}
这是我的 js 方法,它从各个地方调用,然后又调用该getProductRow
方法:
function getProdValue(key) {
console.debug("called getProdValue with " + key);
var value = getProdRow(key);
var prod = $.parseJSON(value);
// do stuff with prod
}
我在控制台上看到的日志是:
called getProdValue with abc111
Product key.. abc111
Uncaught SyntaxError: Unexpected token u
item.value.. // some stringified valid json string
显然,由于 jaydata 的异步特性,在item.Value
检索到之前将控件返回给调用函数,并且解析“未定义”给了我语法错误。如何使整个调用同步,以便控制仅在返回时才item.Value
返回调用函数?