NodeJs之co yield的使用,将异步转同步


例如:fs.writeFile是异步方法

1
2
3
4
5
6
7
8
9
10
11
function test(){
    return co(function *() {    
        yield (() => new Promise((resolve, reject) => {
            fs.writeFile(path, ''(err) => {
                if (err) return reject(err);
                    resolve(1);
            });
        }))();
        return;
    });
}

调用test;

1
2
3
4
co(function *() {
    let res = yield test();
    console.log(res);
})