zoukankan      html  css  js  c++  java
  • Node.js自学笔记之回调函数

    写在前面:如果你是一个前端程序员,你不懂得像PHP、Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择。这段时间对node.js进行了简单的学习,在这里谈谈我对node.js的理解 。

    node.js作为javascript运行平台,它采用了事件驱动和异步编程的方式,通过事件注册和异步函数,开发人员可以提高资源利用率,服务器的性能也能得到改善。

    在网站上参考了一些资料,回调函数的官方定义是:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

    Node.js 异步编程的直接体现就是回调,异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。

    阻塞代码实例

    创建一个文件 input.txt ,内容如下:

    Node.js自学笔记之回调函数
    

    创建 main.js 文件, 代码如下:

    var fs = require("fs");
    var data = fs.readFileSync('input.txt');
    console.log(data.toString());
    console.log("程序执行结束!");
    

    以上代码执行结果如下:

    $ node main.js
    Node.js自学笔记之回调函数
    程序执行结束!
    

    非阻塞代码实例

    创建一个文件 input.txt ,内容如下:

    Node.js自学笔记之回调函数
    

    创建 main.js 文件, 代码如下:

    var fs = require("fs");
    fs.readFile('input.txt', function (err, data) {
        if (err) return console.error(err);
        console.log(data.toString());
    });
    console.log("程序执行结束!");
    

    以上代码执行结果如下:

    $ node main.js
    程序执行结束!
    Node.js自学笔记之回调函数
    

    以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行完程序。 第二个实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

    Nodejs最大的亮点就在于事件驱动, 非阻塞I/O 模型,这使得Nodejs具有很强的并发处理能力,非常适合编写网络应用。

    node.js希望我们再单一进程中使用异步编程,当然这个不是Node.js或者javascript独有的,而是一种风格,例如c#中的Tread,Task,java中的Thread,Runable等都是异步编程。

  • 相关阅读:
    八月十四日学习报告
    八月二十一学习报告
    八月二十三学习报告
    八月十七日学习报告
    八月二十二学习报告
    八月十六日学习报告
    八月十九学习报告
    八月二十学习报告
    八月十五日学习报告
    每日日报2020.11.4 1905
  • 原文地址:https://www.cnblogs.com/ting6/p/9725948.html
Copyright © 2011-2022 走看看