异步完成后执行jquery中的done方法

时间:2014-03-07 14:25:26

标签: javascript

是否可以在对象上添加一个侦听器? 例如,我的对象做异步的东西。进展完成后 应该像jquery中的done()那样执行一个事件......

示例:

var Obj = function() {

  this.load = function() {
    // Load something and after finishing fire event "done"
  }

}

var obj = new Obj();
obj.load().done(function(data) {
  // handle data
});

感谢您的帮助: - )

1 个答案:

答案 0 :(得分:0)

您想要的是承诺

当然你需要使用延迟api:

var Obj = function(){
   this.load =function(){
     var deferred = = $.Deferred();
     // when the condition load is fufilled
     dfd.resolve(someParameters);
     // if there is an error somewhere
     deferred.reject();

     //you need to return 
     return deferred.promise();
   }
}

var obj = new Obj();
obj.load()
  .fail(function(){ /* something went wrong! OMG */ })
  .done(function(data) {
  // handle data
});

查看:http://api.jquery.com/deferred.done/