function calcCount(tAry) { var count = 0 var newAry = taskAry.filter(item => item.isVaild == false) count = newAry.length $('#num_td').text(count + 'item left') } function updataTask() { var html = template('taskTpl', { tasks: taskAry }) $('.tdthins').html(html) } var taskAry = [] $.ajax({ type: 'get', url: '/get-task', data: {}, success: function (data) { taskAry = JSON.parse(data) updataTask() calcCount() }
解决问题,而不是换种写法
async function ajax(url) {
return new Promise(function (resolve, reject) {
let ajaxSetting = {
url: url,
success: function (response) {
resolve(response);
},
error: function () {
reject("请求失败");
}
}
$.ajax(ajaxSetting);
});
}
async function run() {
let response1 = await ajax("data1.json");
let response2 = await ajax(response1["url"]);
let response3 = await ajax(response2["url"]);
console.log(response3);
}
//不阻塞
run();
参考
你加个延时看看,把newAry的值console.log
你检查下taskAry拿到数据了吗,拿到之后看下newAry这个结果,调试下即可
用await 和async字段