jQuery回调函数没有按顺序执行

时间:2018-05-16 18:58:33

标签: javascript jquery

我正在搜索如何按照它编写的顺序执行代码(因为只要满足某些条件我才需要效果)并且解决方案似乎是回调函数。我试过这个:

(function(callback) {
  let found = false;
  $.getJSON("people.json", function(data) {
    $.each(data.people, function() {
      if (this.number === $('#number').text()) {
        console.log("yes");
        found = true;
      }
    });
  });

  callback(found);
})(function(found) {
  if (found == false) {
    console.log("no");
  }
});

所以我创建了这些函数,但它似乎没有按预期工作,因为回调函数在另一个函数结束之前执行。

当找到某些内容时,控制台将记录否,然后是,这意味着它没有按顺序发生。

现在我发现这个函数没有同步,我怎么能确定我的js文件的其余部分是否按预期工作?什么时候可以期待同步,什么时候不能?

删除了该功能并执行了此操作:

let found = false;
$.getJSON("people.json", function(data) {
  $.each(data.people, function() {
    if (this.number === $('#addFriendScreen > p').eq(0).text()) {
      found = true;
      console.log("true");
    }
  });
  if (found === false) {
    console.log("false");
  }
});

}

现在可行了

0 个答案:

没有答案