node.js异步编程的几种模式

Node.js异步编程的几种模式

以读取文件为例:javascript

1.callback function

const fs = require('fs'); //callback function fs.readFile('package.json',(val,err) => { if(err) throw err; console.log(val); }); 

2.Promise对象

//promise let fs_promise = function(file){ return new Promise((resolve,reject)=>{ fs.readFile(file,(val,err) => { if(err) reject(err); resolve(val); }); }); }; fs_promise('package.json') .then((data) => console.log(data)); 

3.Generator函数 + Promise对象

//Generator + promise function* gen(file){ return yield fs_promise(file); } let g = gen('package.json'); g.next(); 

4.Generator函数 + Promise对象 + co函数库

//Generator + promise + co const co = require('co'); co(gen('package.json')); 

5. Generator函数 + Thunk函数 + co函数库

//Generator + thunk + co let fs_thunk = function(file){ return function(callback){ return fs.readFile(file,callback); } }; function* gen(file){ let f1 = yield fs_thunk(file); console.log(f1.toString()); } const co = require('co'); co(gen('package.json')); 

6. async/await

//async + await NOT SUPPORT YET async function readFileAsync(file){ return await fs.readFile(file); } readFileAsync('package.json');
相关文章
相关标签/搜索