Skip to content

Commit c3e5cb4

Browse files
committed
style: fix formatting issue and restore original code style
- backtick - semicolon - etc..
1 parent 88e6e45 commit c3e5cb4

1 file changed

Lines changed: 19 additions & 20 deletions

File tree

  • 1-js/12-generators-iterators/2-async-iterators-generators

1-js/12-generators-iterators/2-async-iterators-generators/article.md

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
```js
1414
let range = {
1515
from: 1,
16-
to: 5,
16+
to: 5
1717
};
1818
```
1919

@@ -142,12 +142,12 @@ let range = {
142142
전개 구문은 일반 이터레이터가 필요로 하므로 아래와 같은 코드는 동작하지 않습니다.
143143

144144
```js
145-
alert([...range]); // Symbol.iterator가 없기 때문에 에러 발생
145+
alert( [...range] ); // Symbol.iterator가 없기 때문에 에러 발생
146146
```
147147

148148
전개 구문은 `await`가 없는 `for..of`와 마찬가지로, `Symbol.asyncIterator`가 아닌 `Symbol.iterator`를 찾기 때문에 에러가 발생하는 것은 당연합니다.
149149

150-
`````
150+
````
151151
152152
## 제너레이터 복습
153153
@@ -194,13 +194,13 @@ let range = {
194194
to: 5,
195195
196196
*[Symbol.iterator]() { // [Symbol.iterator]: function*()를 짧게 줄임
197-
for (let value = this.from; value <= this.to; value++) {
197+
for(let value = this.from; value <= this.to; value++) {
198198
yield value;
199199
}
200-
},
200+
}
201201
};
202202
203-
for (let value of range) {
203+
for(let value of range) {
204204
alert(value); // 1, 2, 3, 4, 5
205205
}
206206
```
@@ -260,7 +260,7 @@ result = await generator.next(); // result = {value: ..., done: true/false}
260260
```
261261
262262
이것이 async 제너레이터가 `for await...of`와 함께 동작하는 이유입니다.
263-
`````
263+
````
264264

265265
### async 이터러블 range
266266

@@ -340,19 +340,18 @@ async function* fetchCommits(repo) {
340340
while (url) {
341341
const response = await fetch(url, {
342342
// (1)
343-
headers: { "User-Agent": "Our script" }, // GitHub는 모든 요청에 user-agent 헤더를 강제 합니다.
343+
headers: { 'User-Agent': 'Our script' }, // GitHub는 모든 요청에 user-agent 헤더를 강제 합니다.
344344
});
345345

346346
const body = await response.json(); // (2) 응답은 JSON 형태로 옵니다(커밋이 담긴 배열).
347347

348348
// (3) 헤더에 담긴 다음 페이지를 나타내는 URL을 추출합니다.
349-
let nextPage = response.headers.get("Link").match(/<(.*?)>; rel="next"/);
349+
let nextPage = response.headers.get('Link').match(/<(.*?)>; rel="next"/);
350350
nextPage = nextPage?.[1];
351351

352352
url = nextPage;
353353

354-
for (let commit of body) {
355-
// (4) 페이지가 끝날 때까지 커밋을 하나씩 반환(yield)합니다.
354+
for (let commit of body) { // (4) 페이지가 끝날 때까지 커밋을 하나씩 반환(yield)합니다.
356355
yield commit;
357356
}
358357
}
@@ -375,7 +374,7 @@ async function* fetchCommits(repo) {
375374
let count = 0;
376375
377376
for await (const commit of fetchCommits(
378-
"javascript-tutorial/en.javascript.info",
377+
'javascript-tutorial/en.javascript.info',
379378
)) {
380379
console.log(commit.author.login);
381380
@@ -401,17 +400,17 @@ async function* fetchCommits(repo) {
401400

402401
일반 이터레이터와 async 이터레이터의 문법 차이는 다음과 같습니다.
403402

404-
| | iterable | async iterable |
405-
| -------------------------- | ----------------------------- | ------------------------------------------------ |
406-
| iterator를 반환하는 메서드 | `Symbol.iterator` | `Symbol.asyncIterator` |
407-
| `next()`가 반환하는 값 | `{value:…, done: true/false}` | `{value:…, done: true/false}`를 감싸는 `Promise` |
403+
| | iterable | async iterable |
404+
|-------|-----------|-----------------|
405+
| iterator를 반환하는 메서드 | `Symbol.iterator` | `Symbol.asyncIterator` |
406+
| `next()`가 반환하는 값 | `{value:…, done: true/false}` | `{value:…, done: true/false}`를 감싸는 `Promise` |
408407

409408
일반 제너레이터와 async 제너레이터의 문법 차이는 다음과 같습니다.
410409

411-
| | generators | async generator |
412-
| ---------------------- | ----------------------------- | ------------------------------------------------ |
413-
| 선언 | `function*` | `async function*` |
414-
| `next()`가 반환하는 값 | `{value:…, done: true/false}` | `{value:…, done: true/false}`를 감싸는 `Promise` |
410+
| | generators | async generator |
411+
|-------|-----------|-----------------|
412+
| 선언 | `function*` | `async function*` |
413+
| `next()`가 반환하는 값 | `{value:…, done: true/false}` | `{value:…, done: true/false}`를 감싸는 `Promise` |
415414

416415
웹 개발을 하다 보면 띄엄띄엄 들어오는 데이터 스트림을 다뤄야 하는 경우가 자주 생깁니다. 용량이 큰 파일을 다운로드하거나 업로드 할 때와 같이 말이죠.
417416

0 commit comments

Comments
 (0)