Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么要使用sync函数node.js_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript 为什么要使用sync函数node.js

Javascript 为什么要使用sync函数node.js,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,每个人都建议在Node.js中使用异步(非阻塞)函数而不是同步函数 那么,如果node.js中不推荐使用同步函数,那么它们有什么用途呢 例如:如果fs.readFileSync()可以在不阻塞的情况下完成相同的工作,为什么要使用fs.readFileSync() 同步函数非常有用,尤其是在启动时,您需要确保在执行更多代码之前获得结果 例如,您可以同步加载配置文件。但是,如果您试图在实时请求期间读取文件,则应使用异步函数,以免阻止其他用户请求。有时,您希望在完成对文件的读取或写入后执行代码。比如说

每个人都建议在Node.js中使用异步(非阻塞)函数而不是同步函数

那么,如果node.js中不推荐使用同步函数,那么它们有什么用途呢


例如:如果
fs.readFileSync()
可以在不阻塞的情况下完成相同的工作,为什么要使用
fs.readFileSync()

同步函数非常有用,尤其是在启动时,您需要确保在执行更多代码之前获得结果


例如,您可以同步加载配置文件。但是,如果您试图在实时请求期间读取文件,则应使用异步函数,以免阻止其他用户请求。

有时,您希望在完成对文件的读取或写入后执行代码。比如说

function () {
    array.forEach(function(data) {
        fs.writeFile(data)
    });

    // do this after forEach has finished looping, not after files have finished being writen to
}
任命如下:

function () {
    array.forEach(function(data) {
        fs.writeFileSync(data)
    });

    // do this after all files have been written to
}

这并不是说它们没有被重新引用,这只是一个用例,也许是okay的一个副本……所以从我的理解来看,同步功能不仅针对该用户,也针对其他用户。因此,一个单一的阻塞功能可以阻止整个服务器在这段时间内为请求提供服务?这是正确的。节点是单线程的,所以当一件事情发生时,其他任何事情都不能发生。使用异步函数让流程执行其他操作,然后在完成后返回。当使用这些配置的所有代码可能都是异步的时,什么样的配置需要可用的同步?例如,您可能希望加载配置文件以获取运行服务器的端口。你可以在同步调用中得到它,因为在服务器启动之前你不会做任何并发工作。这是一个幼稚的论点。检查异步模块或任何promise实现您可能仍然希望在此基础上使用promise all