引入方法
高版本node已经内嵌了Promise机制
1 | var Promise = require('promise'); |
简单使用
new Promise
依赖关系顺序执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function testPromise(begin) {
return new Promise(function (resolve, reject) {
// 在这里写异步方法, resolve是then的第一个参数, reject是then的第二个参数
if (begin <= 3){
resolve(begin);
}
reject('begin 不允许 > 3');
}).then(function (begin) {
console.log(begin);
}, function(err){
console.log(err);
});
}
// 调用测试
testPromise(0); // 0
testPromise(4); // begin 不允许 > 3
高级使用
new Promise.all
非依赖同时执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function onePromise(begin) {
return new Promise(function (resolve, reject) {
if (begin <= 3){
resolve(begin);
}
reject('begin = '+ begin +' 不允许 > 3');
});
}
function testPromise2(begin){
return new Promise.all([onePromise(begin), onePromise(begin+1), onePromise(begin+2)]).then(function(datas){
console.log(datas);
}, function(err){
console.log(err);
})
}
// 调用测试
testPromise2(1); // [ 1, 2, 3 ]
testPromise2(2); // begin = 4 不允许 > 3
其他Promise 第三方库
如果node版本较低,可以使用其他实现Promise标准的库