File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # JavaScript Generators
2+
3+ > [ https://youtu.be/Zk_rX2n3Ml8 ] ( https://youtu.be/Zk_rX2n3Ml8 )
4+
5+ Install [ Node.js] ( https://nodejs.org/ ) .
6+
7+ Then run ` node index.js ` to run the example.
Original file line number Diff line number Diff line change 1+ This file is really big.
Original file line number Diff line number Diff line change 1+ // function* bears () {
2+ // var kind = yield 'grizzly'
3+ // yield kind + ' polar'
4+ // console.log('kind: ' + kind)
5+ // return 'done'
6+ // }
7+ // var bear = bears()
8+ // console.log(bear.next().value)
9+ // console.log(bear.next('ferocious').value)
10+ // console.log(bear.next().value)
11+
12+ var fs = require ( 'fs' )
13+
14+ run ( function * ( resume ) {
15+ var contents = yield fs . readFile ( 'big.file' , 'utf8' , resume )
16+ var uppercase = contents . toUpperCase ( )
17+ yield fs . writeFile ( 'uppercase.file' , uppercase , resume )
18+ console . log ( 'All done!' )
19+ } )
20+
21+ function run ( generator ) {
22+ var data = null , yielded = false
23+ var iterator = generator ( function ( ) {
24+ data = arguments
25+ check ( )
26+ } )
27+ yielded = ! ! ( iterator . next ( ) )
28+ check ( )
29+ function check ( ) {
30+ while ( data && yielded ) {
31+ var err = data [ 0 ] , item = data [ 1 ]
32+ data = null
33+ yielded = false
34+ if ( err ) return iterator . throw ( err )
35+ yielded = ! ! ( iterator . next ( item ) )
36+ }
37+ }
38+ }
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " generators-async-await" ,
3+ "version" : " 0.1.0" ,
4+ "description" : " " ,
5+ "main" : " index.js" ,
6+ "scripts" : {
7+ "start" : " node index.js"
8+ },
9+ "author" : " Kyle Robinson Young <kyle@dontkry.com> (http://dontkry.com)" ,
10+ "license" : " MIT"
11+ }
Original file line number Diff line number Diff line change 1+ THIS FILE IS REALLY BIG.
You can’t perform that action at this time.
0 commit comments