我有一个问题
这让我发疯了
我写了一个条形码扫描仪,检查来自json的数据。
脚本运行正常,但
在while循环之后,如果getjson请求与扫描的条形码不匹配,我想获得错误警告消息。
这意味着代码不会进入process.ExitCode
但是每当我在代码中放入错误警告if(myshopdata.order.reference==barcode)
时,错误消息就会在getjson消息之前出现。
我知道getJSON是异步的。并尝试与ajax调用相同,但它减慢它测试它。
任何人都可以帮我解决这个问题吗?
错误消息是我的脚本中唯一缺少的
这是我的剧本
答案 0 :(得分:0)
以下评论...使用$.when.apply()
方法查看更新的答案。
document.addEventListener("intel.xdk.device.barcode.scan", function(evt){
if (evt.success == true) {
//successful scan
var barcode = evt.codedata;
//Get numbers of Orders
$.getJSON("http://www.testurl.de/api/orders/?ws_key=TEEUQWL9J76LFQE&output_format=JSON", function(data){
var order = JSON.stringify(data);
var orderdata =JSON.parse(order);
var ordercount = Object.keys(orderdata.orders).length;
var queries = [];
var result = 0;
var i = 0;
while(i <= ordercount)
{
queries.push(
$.getJSON("http://www.testurl.de/api/orders/"+i+"?ws_key=TEZQFW41L9J76LFQE&output_format=JSON", function(data){
var shopdata = JSON.stringify(data);
var myshopdata =JSON.parse(shopdata);
result++; // Increment results counter
sweetAlert("Code will be checkd", "Please wait","info");
if(myshopdata.order.reference == barcode)
addcode(myshopdata.order.reference,myshopdata.order.associations.order_rows[0].product_name,myshopdata.order.total_paid_tax_incl,myshopdata.order.associations.order_rows[0].product_id);
});
);
i++;
} //end of while loop
// When all the getJSON calls have completed
$.when.apply($, queries).done(function() {
if(!result) // check results
console.log('No orders found');
});
}); //end of get json
}//end of event listener if
else
sweetAlert("Hoppla", "Woltest du nicht gerade scannen? :) ");
},false);//end of event listener