js异步

js异步编程4种方法(以jQuery的写法为例)  -- 来自阮一峰2012年的文章

1.回调函数 

 function f1(callback) {setTimeout(function(){// f1的代码  callback()})} 

=> 使用  f1(f2)

2.事件监听

  function f1(){setTimeout(function(){// f1的代码  f1.trigger('done')})} 

=> 使用  f1.trigger('done')

3.发布/订阅  

function f1(){setTimeout(function(){// f1的代码  jQuery.publish('done')})} 

=> 使用  jQuery.subscribe('done',f2). ps.完成后可以使用unsubscribe取消订阅

4.Promise对象 

 function f1(){var dfd = $.Deferred() setTimeout(function(){// f1的代码 dfd.resolve() },500) return dfd.promise}

 => 使用   f1().then(f2) or f1().then(f2).then(f3) or f1().then(f2).fail(f3)

你可能感兴趣的:(js异步)