Skip to content

Commit 2d987a2

Browse files
committed
feat: add promise all
1 parent e63f090 commit 2d987a2

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

js/promise.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* @Author: Chacha
3+
* @Date: 2022-04-19 22:33:05
4+
* @Last Modified by: Chacha
5+
* @Last Modified time: 2022-04-19 22:40:07
6+
*/
7+
8+
/**
9+
* Promise 练习
10+
*
11+
*/
12+
13+
Promise.myAll = (promises) => {
14+
return new Promise((resolve, reject) => {
15+
let count = 0;
16+
let result = [];
17+
const length = promises.length;
18+
19+
promises.forEach((p, i) => {
20+
Promise.resolve(p)
21+
.then((res) => {
22+
count += 1;
23+
result[i] = res;
24+
25+
if (count === length) {
26+
resolve(result);
27+
}
28+
})
29+
.catch(reject);
30+
});
31+
});
32+
};
33+
34+
let p1 = Promise.resolve(1);
35+
let p2 = 2;
36+
let p3 = new Promise((resolve) => {
37+
setTimeout(resolve, 100, 3);
38+
});
39+
// let p4 = Promise.reject("出错啦");
40+
41+
Promise.myAll([p1, p2, p3])
42+
.then((res) => {
43+
console.log(res, "res--3");
44+
})
45+
.catch((err) => {
46+
console.log("err", err);
47+
});

0 commit comments

Comments
 (0)