1 2 3 4 5 6 7 8 9 10 11
| const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
nums.forEach(async (num) => { await new Promise(res => { setTimeout(() => { console.log(num); res(); }, 1000); }); });
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
(async() => { nums.forEach(async (num) => { await new Promise(res => { setTimeout(() => { console.log(num); res(); }, 1000); }); }); })();
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
(async() => { for(const num of nums) { await new Promise(res => { setTimeout(() => { console.log(num); res(); }, 1000); }); } })();
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
(async() => { for(let i=0, len=nums.length; i<len; i++) { await new Promise(res => { setTimeout(() => { console.log(nums[i]); res(); }, 1000); }); } })();
|
아마 실행 주도권이 배열 표준 메소드 내부의 콜백 함수가 가지게 되어서 그런 게 아닐까?