ajax 完成在操作,多个Ajax调用完成后执行操作(设置async:false)

我有一组youtube频道名称:

var a = [“MyHarto”,“vlogbrothers”,“pbsideachannel”];

我想遍历每个频道,查询Youtube Data API,并将每个频道的订阅者总数相加。我的问题是,即使在$ .ajax调用中将async设置为false,订阅者计数也会立即打印到屏幕上而无需等待。这是我的代码:

var subscriberTotalCount = 0;

function grabStatsChannel() {

$('#youtube-stats-ch').html("Working...");

var myURL = "https://www.googleapis.com/youtube/v3/channels?";

var a = ["MyHarto", "vlogbrothers", "pbsideachannel"];

a.forEach(function(channel) {

var query_params = {

key : API_KEY,

forUsername : channel,

part : 'statistics'

};

$.ajax(myURL, {

data : query_params,

type : 'GET',

async: false,

dataType : 'jsonp',

success : function(data) {

$.each(data.items, function(i, entry) {

subscriberTotalCount += parseInt(entry.statistics.subscriberCount);

});

}

});

});

$('#youtube-stats-ch').html('');

$('#youtube-stats-ch').append('Found' + subscriberTotalCount + ' subscribers.
');

}

我尝试过设置一个似乎永远不会被解雇的ajaxcomplete函数。建议?我现在得到的是打印出0个订阅者,即使我可以看到日志记录表明Ajax调用成功并且订阅者计数最终设置正确。

是否有一种干净的方法可以阻止或进行最后的刷新?我认为将async设置为false可以在这里工作。不幸的是,如果我在成功函数中打印出总数,那么屏幕会随着每次总计更新而闪烁,这是我想要避免的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值