Node Js 异步编程之callback
导语
上一节,我们讲到nodejs有大量的非阻塞I/O,这些非阻塞I/O的程序运行结果是需要通过回调函数来获取的,那么接下来我们便去了解一下,在 nodejs 中的回调函数的内容。
nodejs 中的回调函数的格式规范
err-frist callback( 或者是 node-style callback )即 第一个参数是err,后面的参数才是I/O操作的结果。
举例说明
function test(callback) {
setTimeout(() => {
if (Math.random() < 0.5) {
callback("", "yes");
} else {
callback("error", "no");
}
}, 1000);
}
test((err, data) => {
if (err) {
console.log("cry");
} else {
console.log(data);
}
});
非阻塞I/O的callback 比较容易遇到的问题:
1 回调地狱
2 并发
对于这两个问题,社区提出了一些解决方案,例如:
npm包: async.js
npm文档地址:www.npmjs.com/package/asy…
结束语
本节只是学习了解下Node js 的callback规范和callback可能会遇到的问题,下一节,将学习node js 的事件循环机制。那么,下次见。好好学习,天天向上!