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");
}
});
所以我创建了这些函数,但它似乎没有按预期工作,因为回调函数是在另一个函数结束之前执行的。
当找到某些东西时,控制台将记录 no 然后是 yes,这意味着它不是按顺序发生的。
现在我看到这个函数没有同步,我怎么能确定我的 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");
}
});
}
现在它可以工作了
解决方案
推荐阅读
- python - 如何在python中设置一个值来运行
- regex - 谷歌表单的单词和句子要求正则表达式
- angular - 在 Angular / HTTP POST 请求中作为空白传递的布尔数据
- r - 使用正值和负值时如何正确对齐条形顶部的标签
- github - GitHub 可重用工作流:使用最新提交
- event-handling - Qt 创建事件调度器
- android - 什么相当于android中的横幅(jetpack compose)
- multiple-monitors - AwesomeWM - 有了新显示器后出现错误“__newindex”
- javascript - 无法将 nodejs 模块导入 CustomActivity.js
- c# - 无法访问剃刀页面中的变量