-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path20.generator.js
More file actions
37 lines (37 loc) · 906 Bytes
/
Copy path20.generator.js
File metadata and controls
37 lines (37 loc) · 906 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
let fs = require("fs");
function promisify(fn){
return function(){
return new Promise((resolve, reject)=>{
fn(...arguments, (err, data)=>{
if(err) reject(err);
resolve(data);
});
});
}
}
let readFile = promisify(fs.readFile);
function * read(){
let ageTxt = yield readFile("./name.txt", "utf8");
let age = yield readFile(ageTxt, "utf8");
// yield [1+Number(age)];
return age;
}
// co
// let co = require("co");
function co(it){
return new Promise((resolve, reject)=>{
function next(val){
let {value, done} = it.next(val);
if(done){
return resolve(value);
}
Promise.resolve(value).then(data=>{
next(data);
}, reject);
}
next();
});
}
co(read()).then(data=>{
console.log(data);
});