Skip to content

Commit 92800d1

Browse files
committed
add
1 parent 66775bc commit 92800d1

File tree

6 files changed

+79
-0
lines changed

6 files changed

+79
-0
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ https://github.com/webVueBlog/Leetcode
3030
- 263.[promise.then](./阶段九/then.js)
3131
- 264.[then返回值的处理技巧](./阶段九/then返回值的处理技巧.js)
3232
- 265.[promise封装ajax](./阶段九/promise封装ajax.js)
33+
- 266.[封装setTimeout定时器](./阶段九/封装setTimeout定时器.js)
34+
- 267.[promise队列原理](./阶段九/promise队列原理.js)
35+
- 268.[异步封装到类内部](./阶段九/异步封装到类内部.js)
36+
- 269.[class和await的结合](./阶段九/class和await的结合.js)
37+
- 270.[用reduce实现promise队列](./阶段九/用reduce实现promise队列.js)
38+
3339

3440
## 🧑🏻 阶段八
3541

阶段九/class和await的结合.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//如果一个类中包含then方法
2+
//他会被包装成一个promise
3+
class User {
4+
constructor(name) {
5+
this.name = name;
6+
}
7+
then(resolve, reject) {
8+
setTimeout(() => {
9+
console.log(124);
10+
resolve();
11+
}, 1000);
12+
}
13+
}
14+
async function get() {
15+
await new User();
16+
console.log('dada');
17+
}
18+
get();

阶段九/promise队列原理.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//下个promise得等上一个promise完成再走 按顺序执行promise任务
2+
let promise = Promise.resolve('dada');
3+
promise
4+
.then((v) => {
5+
console.log(v);
6+
return {
7+
then(resolve, reject) {
8+
setTimeout(() => {
9+
resolve('我也返回一个成功的状态');
10+
}, 2000);
11+
},
12+
};
13+
})
14+
.then((v) => {
15+
console.log(v);
16+
});
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function timeout(delay = 1000) {
2+
return new Promise((resolve, reject) => {
3+
setTimeout(() => {
4+
resolve();
5+
}, delay);
6+
});
7+
}
8+
9+
timeout(2000).then(() => {
10+
console.log('两秒第一');
11+
return timeout(2000)
12+
}).then(v => {
13+
console.log('四秒第二');
14+
})

阶段九/异步封装到类内部.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class User {
2+
async get(name) {
3+
return setTimeout(() => {
4+
console.log(name + "dada");
5+
}, 1000);
6+
}
7+
}
8+
new User().get('da').then(user => {
9+
console.log(user);
10+
})
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
function reduceList(list) {
2+
list.reduce((promise, currentValue) => {
3+
// promise 初始值,或者计算结果后的返回值
4+
return Promise.then(() => {
5+
return new Promise((resolve) => {
6+
setTimeout(() => {
7+
console.log(currentValue);
8+
resolve();
9+
}, 1000);
10+
});
11+
});
12+
}, Promise.resolve());
13+
}
14+
15+
reduceList([1, 2, 3, 4, 5]);

0 commit comments

Comments
 (0)