基于Deferred给Javascript对象附件异步事件

场景:希望javascript对象执行完成之后,或遇到异常事件以后,执行回调或异常处理函数

实现方案:Promise与Deferred实现

实现方法:

var dtd=$.Deferred();//创建延迟执行对象

function TestFun(defer){

    console.log("testfun run!");

    defer.resolve();//把Deferred的状态从未完成改变成已完成

}

dtd.promise(TestFun);//给TestFun对象附加Deferred对象的方法

TestFun.done(function(){

  //Todo

}).fail(function(){

 //ToDo

});

TestFun(dtd);//调用函数

附:Deferred对象结构图

 

posted @ 2017-03-29 10:56  拂袖看海  阅读(59)  评论(0)    收藏  举报