Node Js 异步编程之callback

291 阅读1分钟

Node Js 异步编程之callback

导语

上一节,我们讲到nodejs有大量的非阻塞I/O,这些非阻塞I/O的程序运行结果是需要通过回调函数来获取的,那么接下来我们便去了解一下,在 nodejs 中的回调函数的内容。

nodejs 中的回调函数的格式规范

err-frist callback( 或者是 node-style callback )即 第一个参数是err,后面的参数才是I/O操作的结果

举例说明

5.jpeg

    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 的事件循环机制。那么,下次见。好好学习,天天向上!

6.jpg