我正在使用“切换”不同的操作。在这种情况下,我试图将一个产品添加到变量“data”到Json对象中。函数giveMeProd ..应该返回值。
case "pvc":
if (option == 1) { //1 means I want a single prod.
data = giveMeTheProductPlease(sessionStorage.baseId);
console.log("result: " + data); ...
giveMeTheProduct功能:
function giveMeTheProductPlease(id) {
var aux = null;
$.getJSON("./data/results.json", function (data) {
var l = Object.keys(data).length;
for (var i = 0; i < l; i++) {
if (data[i].id == id) {
console.log(data[i]);
aux = data[i];
}
}
})
return aux;
}
我一直在阅读这个问题,似乎我试图运行一个异步函数并将其返回到一个同步函数。它可以通过“回调”解决,但我需要接收“id”参数,我不知道该怎么做。
有什么想法吗?
答案 0 :(得分:0)
您的函数giveMeTheProductPlease()
正在处理异步代码。它实际上会在null
发出请求之前返回$.getJSON
。
你可以做什么:
var findProduct = function(id, data) {
var aux = null;
for (var i = 0; i < data.length; i++) {
if (data[i].id === id) {
aux = data[i];
}
}
return aux;
}
$.getJSON("./data/results.json", function (result) {
switch(val) {
case "pvc":
if (option == 1) { //1 means I want a single prod.
data = findProduct(sessionStorage.baseId, result);
}
})