Javascript学习笔记_异步模式

本文详细介绍了异步编程中的四种常见模式:回调、事件监听、发布/订阅及Promises对象的使用方法。通过具体示例展示了如何利用这些模式解决异步任务的执行与管理问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异步模式

1. 回调

function f1(callback){
    setTimeout(function () { 
      // f1的任务代码 
      callback(); 
    }, 1000); 
} </br>

f1(f2);

2. 事件监听

f1.on('done', f2);

function f1(){ 
  setTimeout(function () { 
    // f1的任务代码 
    f1.trigger('done'); 
  }, 1000); 
}

3. 发布/订阅

  • 我们假定,存在一个"信号中心",某个任务执行完成,就向信号中心"发布"(publish)一个信号,其他任务可以向信号中心"订阅"(subscribe)这个信号,从而知道什么时候自己可以开始执行。这就叫做"发布/订阅模式"(publish-subscribe pattern),又称"观察者模式"(observer pattern)。
jQuery.subscribe("done", f2);
function f1(){
   setTimeout(function () {
     // f1的任务代码 
     jQuery.publish("done");
   }, 1000);
}

Promises对象

f1的回调函数f2,可以写成:

f1().then(f2);

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

比如,指定多个回调函数

f1().then(f2).then(f3);

再比如,指定发生错误时的回调函数

f1().then(f2).fail(f3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值