|
4 | 4 |
|
5 | 5 | // await loadJs('https://unpkg.com/@bikeshaving/crank/umd/index.js'); |
6 | 6 | await loadJs('https://unpkg.com/[email protected]/umd/index.js'); |
7 | | -const {Context, createElement, Element, renderer} = Crank; |
| 7 | +const {createElement, renderer} = Crank; |
8 | 8 |
|
9 | 9 | appendCss(` |
10 | 10 | #mountNode { padding: 20px } |
11 | 11 | `) |
12 | 12 |
|
| 13 | +// https://github.com/bikeshaving/crank/tree/master/examples/async-generator |
13 | 14 | const mount = document.getElementById("mountNode"); |
14 | 15 | const arr = []; |
| 16 | + |
15 | 17 | async function* List( |
16 | | - {elems}, |
| 18 | + {elems}, |
17 | 19 | ) { |
18 | | - let i = 0; |
19 | | - for await ({elems} of this) { |
20 | | - i++; |
21 | | - if (i % 5 === 0) { |
22 | | - yield <div>Loading {elems.length} items...</div>; |
23 | | - await new Promise((resolve) => setTimeout(resolve, 4000)); |
24 | | - } |
25 | | - yield ( |
26 | | - <ul> |
27 | | - {elems.map((i) => ( |
28 | | - <li crank-key={i}>{i}</li> |
29 | | - ))} |
30 | | - </ul> |
31 | | - ); |
32 | | - await new Promise((resolve) => setTimeout(resolve, 500)); |
33 | | - } |
| 20 | + let i = 0; |
| 21 | + for await ({elems} of this) { |
| 22 | + i++; |
| 23 | + if (i % 5 === 0) { |
| 24 | + yield <div>Loading {elems.length} items...</div>; |
| 25 | + await new Promise((resolve) => setTimeout(resolve, 4000)); |
| 26 | + } |
| 27 | + yield ( |
| 28 | + <ul> |
| 29 | + {elems.map((i) => ( |
| 30 | + <li crank-key={i}>{i}</li> |
| 31 | + ))} |
| 32 | + </ul> |
| 33 | + ); |
| 34 | + await new Promise((resolve) => setTimeout(resolve, 500)); |
| 35 | + } |
34 | 36 | } |
35 | 37 |
|
36 | 38 | renderer.render(<List elems={arr} />, mount); |
37 | 39 | setInterval(() => { |
38 | | - arr.push(arr.length + 1); |
39 | | - if (arr.length > 30) { |
40 | | - arr.length = 0; |
41 | | - } |
42 | | - renderer.render(<List elems={arr} />, mount); |
| 40 | + arr.push(arr.length + 1); |
| 41 | + if (arr.length > 30) { |
| 42 | + arr.length = 0; |
| 43 | + } |
| 44 | + renderer.render(<List elems={arr} />, mount); |
43 | 45 | }, 1000); |
0 commit comments