观察者模式
观察者模式又叫做发布订阅模式,其基础支撑是事件的发布与订阅。
一个简单的观察者模式代码示例:
1 | function Observer() { |
使用此代码
1 | var observer = new Observer() |
代码的逻辑很简单
- subscribe的时候将要执行的函数放入存放函数的容器
- publish的时候根据事件的名称取出函数,并传入数据,执行
Promise
Promise是js异步的解决方案,通常用于ajax请求
继续编写简单的代码
1 | function Promise(executor) { |
使用此代码
1 | new Promise(function (resolve) { |
Promise的关键点在于
- .then是给存放回调的容器里面添加回调函数
- resolve是then注册回调的执行者,所以当异步的时候,then要后于resolve执行。同样PubSub也可以用于异步
- Promise也是观察者模式的一种实现
1
2
3
4
5
6
7
8
9
10
11
12
13// 使用事件发布订阅处理异步
var observer = new Observer()
observer.subscribe('吃饭', function (stuff) {
console.log(stuff) // 面条
})
$.ajax({
url: '饭堂'
})
.success(function(data) {
observer.publish('吃饭', data['面条'])
})