Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getJSON脚本的问题_Javascript_Jquery_Json_Ajax_Getjson - Fatal编程技术网

Javascript getJSON脚本的问题

Javascript getJSON脚本的问题,javascript,jquery,json,ajax,getjson,Javascript,Jquery,Json,Ajax,Getjson,我有个问题 这让我抓狂 我编写了一个条形码扫描器来检查json中的数据 剧本很好,但是 在while循环之后,如果getjson请求与扫描的条形码不匹配,我希望得到一条错误警报消息 这意味着如果代码没有进入if(myshopdata.order.reference==barcode) 但每次我把错误警报警报(“找不到代码”)在我的代码中,错误消息早于getjson消息 我知道getJSON是异步的。在ajax调用中也尝试同样的方法,但这会减慢它的速度 有人能帮我在代码中解决这个问题吗 错误消息是

我有个问题

这让我抓狂

我编写了一个条形码扫描器来检查json中的数据

剧本很好,但是

在while循环之后,如果getjson请求与扫描的条形码不匹配,我希望得到一条错误警报消息

这意味着如果代码没有进入
if(myshopdata.order.reference==barcode)

但每次我把错误警报
警报(“找不到代码”)
在我的代码中,错误消息早于getjson消息

我知道getJSON是异步的。在ajax调用中也尝试同样的方法,但这会减慢它的速度

有人能帮我在代码中解决这个问题吗

错误消息是我的脚本中唯一缺少的东西


这是我的脚本,下面是我的评论。。。请参阅使用
$.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
document.addEventListener(“intel.xdk.device.barcode.scan”,函数(evt){
如果(evt.success==true){
//扫描成功
var条形码=evt.codedata;
//获得订单数量
$.getJSON(“http://www.testurl.de/api/orders/?ws_key=TEEUQWL9J76LFQE&output_format=JSON“,函数(数据){
var order=JSON.stringify(数据);
var orderdata=JSON.parse(order);
var ordercount=Object.keys(orderdata.orders).length;
var查询=[];
var结果=0;
var i=0;

虽然(i
$.getJSON是异步的
…因此您的代码运行正常。您需要添加
成功
错误
回调来管理此问题。是的,我知道,但我不知道如何在示例代码中使用它:(从这里开始检查