markdown JS中的eventproxy和承诺
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown JS中的eventproxy和承诺相关的知识,希望对你有一定的参考价值。
## promise
因为ajax都是异步的,我们又不想回掉函数里面嵌套好几层,所有有promise。
我们假设step1, step2, step3都是ajax调用后端,step1、step2、step3必须按顺序执行
```js
var val = 1;
function step1(resolve, reject) {
console.log('步骤一:执行');
if (val >= 1) {
resolve('Hello I am No.1');
} else if (val === 0) {
reject(val);
}
}
function step2(resolve, reject) {
console.log('步骤二:执行');
if (val === 1) {
resolve('Hello I am No.2');
} else if (val === 0) {
reject(val);
}
}
function step3(resolve, reject) {
console.log('步骤三:执行');
if (val === 1) {
resolve('Hello I am No.3');
} else if (val === 0) {
reject(val);
}
}
new Promise(step1).then(function(val){
console.info(val);
return new Promise(step2);
}).then(function(val){
console.info(val);
return new Promise(step3);
}).then(function(val){
console.info(val);
return val;
}).then(function(val){
console.info(val);
return val;
});
```
## eventproxy
eventproxy就是事件的订阅与发布,同样是三个函数,看一下用eventproxy实现。
```
const Event = new EventProxy()
Event.on('step1:success', (data) => {
step2();
})
Event.on('step2:success', (data) => {
step3();
})
function step1() {
console.log('步骤一:执行');
Event.emit('step1:success', data)
}
function step2() {
console.log('步骤二:执行');
Event.emit('step2:success', data)
}
function step3() {
console.log('步骤三:执行');
}
step1();
```
以上是关于markdown JS中的eventproxy和承诺的主要内容,如果未能解决你的问题,请参考以下文章
eventProxy
promise与aysnc 与EventProxy
markdown 这是JS中的
markdown JS中的范围是什么?
markdown Node.js中的自定义ES6错误
markdown 在使用AJAX呈现的Handlebars.js模板文件上显示平面JSON文件中的数据。