Promise

js语言是单线程语言

一次只能执行一个任务,多个任务的时候需要排队执行(同步模式)

 

 异步:每一个任务有一个或多个回调函数,前一个任务结束后执行回调函数,后一个任务不必再等前一个任务结束就执行

1.ajax

2.事件监听

f1.on("done",f2)

上面这行代码的意思是,当f1发生done事件,就执行f2

3.发布/订阅模式(publisht-subscribe)

f2向jquery订阅done信号

jQuery.subscribe("done",f2)

f1中发布

 function f1(){

    setTimeout(function () {

      // f1的任务代码

      jQuery.publish("done");

    }, 1000);

  }

f2完成执行后也可以取消订阅(unsubscribe)

jQuery.unsubscribe("done",f2)

4.Promise 对象

Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口

每个异步任务都返回一个Promise对象,该对象有一个then方法,允许自定义回调函数

也可以有多个回调函数

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

发生错误时也有回调

f1().then(f2).fail(f3)

  

posted @ 2018-04-23 14:59  慕东  阅读(132)  评论(0编辑  收藏  举报