I Try Do

内置Promise的使用

引入方法

高版本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标准的库