Skip to content

Commit 882b6ac

Browse files
committed
first commit
0 parents  commit 882b6ac

10 files changed

+195
-0
lines changed

01_sync.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// 同期処理
2+
console.log(1000);
3+
console.log(2000);
4+
console.log(3000);
5+
6+
// 1000
7+
// 2000
8+
// 3000

02_sync_func.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// 関数内でも、時間がかからなければ、同期処理
2+
var wait = value => {
3+
console.log(value);
4+
};
5+
6+
console.log(1000);
7+
wait(2000);
8+
console.log(3000);
9+
10+
// 1000
11+
// 2000
12+
// 3000

03_async.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// 非同期処理
2+
var wait = value => {
3+
setTimeout(() => {
4+
console.log(value);
5+
}, value);
6+
};
7+
8+
console.log(1000);
9+
wait(2000);
10+
console.log(3000);
11+
12+
// 1000
13+
// 3000
14+
// 2000

04_sync_callback.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// コールバックによる同期処理
2+
var wait = (value, callBack) => {
3+
setTimeout(() => {
4+
console.log(value);
5+
callBack();
6+
}, value);
7+
};
8+
9+
console.log(1000);
10+
wait(2000, () => {
11+
console.log(3000);
12+
});
13+
14+
// 1000
15+
// 2000
16+
// 3000

05_sync_callback_hell.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// コールバック地獄
2+
var wait = (value, callBack) => {
3+
setTimeout(() => {
4+
console.log(value);
5+
callBack();
6+
}, value);
7+
};
8+
9+
console.log(1000);
10+
wait(2000, func1 => {
11+
wait(3000, func2 => {
12+
wait(4000, func3 => {
13+
wait(5000, func4 => {
14+
console.log(6000);
15+
});
16+
});
17+
});
18+
});
19+
20+
// 1000
21+
// 2000
22+
// 3000
23+
// 4000
24+
// 5000
25+
// 6000

06_sync_promise.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Promiseによる同期処理
2+
var wait = value => {
3+
console.log(value);
4+
return new Promise((resolve, reject) => {
5+
setTimeout(() => {
6+
resolve(value);
7+
}, value);
8+
});
9+
};
10+
11+
console.log(1000);
12+
wait(2000)
13+
.then(value1 => {
14+
return wait(value1 + 1000); //3000
15+
})
16+
.then(value2 => {
17+
return wait(value2 + 1000); //4000
18+
});

07_sync_async_await.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Promiseによる同期処理
2+
var wait = value => {
3+
console.log(value);
4+
return new Promise((resolve, reject) => {
5+
setTimeout(() => {
6+
resolve(value);
7+
}, value);
8+
});
9+
};
10+
11+
var main = async () => {
12+
console.log(1000);
13+
value1 = await wait(2000);
14+
value2 = await wait(value1 + 1000); //3000
15+
value3 = await wait(value2 + 1000); //4000
16+
};
17+
18+
main();

08_async_for.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
var wait = value => {
2+
console.log("start: " + value);
3+
return new Promise(resolve => {
4+
setTimeout(() => {
5+
console.log("e n d: " + value);
6+
resolve(value);
7+
}, value);
8+
});
9+
};
10+
11+
var main = async () => {
12+
const objects = [1000, 3000, 2000];
13+
var start = Date.now();
14+
console.log("計測開始");
15+
// 何もなしだと並列
16+
// !!!最もシンプルなfor文にasync/awaitはサポートされていない。!!!
17+
for (var i = 0; i < objects.length; i++) {
18+
sampleResolve(objects[i]);
19+
}
20+
21+
var end = Date.now();
22+
console.log("実行時間: " + (end - start) + "m");
23+
};
24+
25+
main();

09_async_for_of.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var wait = value => {
2+
console.log("start: " + value);
3+
return new Promise(resolve => {
4+
setTimeout(() => {
5+
console.log("e n d: " + value);
6+
resolve(value);
7+
}, value);
8+
});
9+
};
10+
11+
var main = async () => {
12+
const objects = [1000, 3000, 2000];
13+
var start = Date.now();
14+
console.log("計測開始");
15+
// for ofでも非同期で並列
16+
for (var object of objects) {
17+
sampleResolve(object);
18+
}
19+
20+
var end = Date.now();
21+
console.log("実行時間: " + (end - start) + "m");
22+
};
23+
24+
main();

10_sync_for_of.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
var wait = value => {
2+
console.log("start: " + value);
3+
return new Promise(resolve => {
4+
setTimeout(() => {
5+
console.log("e n d: " + value);
6+
resolve(value);
7+
}, value);
8+
});
9+
};
10+
11+
var main = async () => {
12+
const objects = [1000, 3000, 2000];
13+
var start = Date.now();
14+
console.log("計測開始");
15+
// for of の場合は awaitが使える
16+
for (var object of objects) {
17+
await sampleResolve(object);
18+
}
19+
20+
var end = Date.now();
21+
console.log("実行時間: " + (end - start) + "m");
22+
};
23+
24+
main();
25+
26+
sample();
27+
28+
// 計測開始
29+
// start: 1000
30+
// e n d: 1000
31+
// start: 3000
32+
// e n d: 3000
33+
// start: 2000
34+
// e n d: 2000
35+
// 実行時間: 6014m

0 commit comments

Comments
 (0)