Node.js 回调函数 壅塞与非壅塞

Node.js异步变成的直接表现就是回调。
异步编程依托于回调来完成,但不能说使用了回调后递次就异步化了。
回调函数在完成任务后就会被挪用,Node使用了大批的回调函数,Node一切的APi都支撑回调函数。
比方,我们i 遍读文件,一边实行其他敕令,在文件读取完成后,我们将文件内容作为回调函数都参数返回。
如许在实行代码时就没有壅塞或守候文件I/O操纵。这就大大提高了Node都机能,能够处置惩罚大批的并发要求。

接下来写一个壅塞代码实例
建立一个文件input.txt,内容以下
进修前端学问,纪录笔记 ,来segmentfault。

建立main.js 文件,代码以下:

const fs = require("fs") //fs模块用于对体系文件及目次举行读写操纵。

const data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("实行递次完毕")

非壅塞代码实例

const fs = require("fs") //fs模块用于对体系文件及目次举行读写操纵。

fs.readFile('input.txt',(err, data) => {
    if(err) {
        console.log(err)
    }else{
        console.log(data.toString())
    }
})
console.log("递次实行完毕!")

以上两个实例写出了壅塞与非壅塞的差别。第一个实例在文件读取完后才实行完递次。
第二个实例我们不须要守候文件读取完,如许就能够在读取文件时同时实行接下来的代码,大大提高了递次的机能。

因而,壅塞是按递次实行的,而非壅塞是不须要按递次的,所以假如须要处置惩罚回调函数的参数,我们就须要写在回调函数内。

    原文作者:ˉˉˉ以默轩然
    原文地址: https://segmentfault.com/a/1190000019374594
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞