promise封装读取文件方法
function readFile(fileName) {
return new Promise(function (resolve,reject) {
fs.readFile(fileName,function (err,data) {
if(err) reject(err);
resolve(data.toString());
})
})
}
generator函数
function* gentT2() {
var f1 = yield readFile('ip.txt');
var f2 = yield readFile('ip1.txt');
console.log(f1,f2);
}
自动执行方法
function run(gen) {
var g=gen();
function next(data) {
var res=g.next(data);
if(res.done) return res.value;
res.value.then(function (data) {
next(data);
});
}
next();
}
完整版
function readFile(fileName) {
return new Promise(function (resolve,reject) {
fs.readFile(fileName,function (err,data) {
if(err) reject(err);
resolve(data.toString());
})
})
}
function* gentT2() {
var f1 = yield readFile('ip.txt');
var f2 = yield readFile('ip1.txt');
console.log(f1,f2);
}
function run(gen) {
var g=gen();
function next(data) {
var res=g.next(data);
if(res.done) return res.value;
res.value.then(function (data) {
next(data);
});
}
next();
}
run(gentT2);
// 方便的自动执行generator函数 类似的库(co)