Promise

Promise基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//使用resolve和reject来执行异步操作,使用then来接受异步resolve带来的数据
new Promise((resolve, reject) => {
//resolve(1 + 1);
//失败
reject("error")
}).then(date => {
console.log(date)
//捕获失败
}).catch(date => {
console.log(date)
});
//第二种写法
new Promise((resolve, reject) => {
resolve(2 + 2)
}).then(data => {
console.log(data);
}, error => {
console.log(error);
})

Promise链式编程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//第一种
new Promise((resolve, reject) => {
return resolve("saxon")
}).then(date => {
console.log("输出=" + date)
return Promise.resolve(date + " love ")
}).then(date => {
console.log("输出2=" + date)
return Promise.resolve(date + " you ")
}).then(date => {
console.log("输出3=" + date)
})
//第二种
new Promise((resolve, reject) => {
return resolve("saxon")
}).then(date => {
console.log("输出=" + date)
//抛出异常 抛出异常由catch接收,并且下面的方法不会执行
throw "error message"
return date + " love "
}).then(date => {
console.log("输出2=" + date)
return date + " you "
}).then(date => {
console.log("输出3=" + date)
}).catch(err => {
console.log(err);
})

处理多个请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//处理多个请求
Promise.all([
//使用多个Promise
new Promise((resolve, reject) => {
resolve("saxon")
}),
new Promise((resolve, reject) => {
resolve("love")
})

]).then(date => {
//接受的数组
console.log(date)
})