-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpromise.js
More file actions
30 lines (24 loc) · 969 Bytes
/
promise.js
File metadata and controls
30 lines (24 loc) · 969 Bytes
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
29
30
let resolveHandle = (str) => console.log(str);
let rejectHandle = () => { throw Error };
let friedSteak = () => new Promise((resolve, reject) => {
console.log("start cooking steak");
setTimeout(() => resolve("steak done"), 2000);
}).then(resolveHandle); // callback to chain
let washVegetable = () => new Promise((resolve, reject) => {
console.log("start washing vegetable");
setTimeout(() => resolve("washing done"), 500);
}).then(resolveHandle);
let cookVegetable = () => new Promise((resolve, reject) => {
console.log("start cooking vegetable");
setTimeout(() => resolve("vegetable done"), 1000);
}).then(resolveHandle);
let eat = () => new Promise((resolve, reject) => {
console.log("start enjoying dinner");
setTimeout(() => resolve("I am full. (¯√¯)"), 10000);
}).then(resolveHandle);
function dinner() {
Promise.all([friedSteak(), washVegetable()])
.then(() => cookVegetable())
.then(() => eat())
}
dinner();