微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Backbone:等待多次获取继续

获取了多个页面的集合,我正在寻找一种方法来了解何时完成所有提取.
这是我的收藏品的样子:
app.collections.Repos = Backbone.Collection.extend({
  model: app.models.Repo,initialize: function(last_page){
    this.url = ('https://api.github.com/users/' + app.current_user + '/watched');

    for (var i = 1; i <= last_page; i++) {
      this.fetch({add: true,data: {page: i}});  
    };
  },...

知道如何用干净的代码实现这一目标吗?

解决方法

使用jQuery deferreds
var deferreds = [];
for (var i = 1; i <= last_page; i++) {
  deferreds.push(this.fetch({add: true,data: {page: i}}));
};

$.when.apply($,deferreds).done(function() {
  ...
  <CODE HERE>
  ...
}

(我实际上没有对此进行测试,但我认为它应该可行.)

when上的jQuery文档:

Provides a way to execute callback functions based on one or more objects,usually Deferred objects that represent asynchronous events.

一个可能有帮助的答案:How do you work with an array of jQuery Deferreds?

原文地址:https://www.jb51.cc/js/159453.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐