Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 node.js回调的正确控制流是什么?_Javascript_Node.js - Fatal编程技术网

Javascript node.js回调的正确控制流是什么?

Javascript node.js回调的正确控制流是什么?,javascript,node.js,Javascript,Node.js,我一直在Node.js上观看一些YouTube视频,我对这个框架非常着迷。很多人把快餐比喻成节点,他们说这就像是下订单;帮助下一位客户;接受命令;以此类推,回调是您的订单。不是我错过了,就是我不明白。但是在回调发生之前,它必须读取所有代码吗 下面是一些测试流的代码,以便我更好地理解,结果支持只有在所有指令完成后才会发生回调。这意味着文件的内容直到console out 15之后才被放入控制台 我只是想确定我把这个记下来了 回到快餐方面,如果有三个人在“Node Cafe”在线购买咖啡,那么客户1

我一直在Node.js上观看一些YouTube视频,我对这个框架非常着迷。很多人把快餐比喻成节点,他们说这就像是下订单;帮助下一位客户;接受命令;以此类推,回调是您的订单。不是我错过了,就是我不明白。但是在回调发生之前,它必须读取所有代码吗

下面是一些测试流的代码,以便我更好地理解,结果支持只有在所有指令完成后才会发生回调。这意味着文件的内容直到console out 15之后才被放入控制台

我只是想确定我把这个记下来了

回到快餐方面,如果有三个人在“Node Cafe”在线购买咖啡,那么客户1是否会在客户3下订单之前收到订单

希望这有意义

var fs = require('fs');

function sql_file(sqlFilename, cb) {
    var fileName = sqlFilename;
    fs.readFile(fileName, function(err, buffer) {
        if (err) return cb(err);

        return cb(null, buffer.toString());
    });
    console.log('buffer');
}

module.exports.sql_file = sql_file;

console.log('1');

var misc = require('./foo.txt');
misc.sql_file('Account.sql', function(err, contents) {
    console.log(contents);
});
console.log('2');
console.log('3');
console.log('4');
console.log('5');
console.log('6');
console.log('7');
console.log('8');
console.log('9');
console.log('10');
console.log('11');
console.log('12');
console.log('13');
console.log('14');
console.log('15');   
客户1是否在客户3下订单之前收到订单

不,用你的快餐比喻:

只有一个服务员负责处理所有客户(一个线程执行所有操作)。当柜台上有一行(对账单)时,他需要同时处理所有对账单。在此期间,他可以根据客户的要求向其他员工(后台流程)发出(异步)订单,但他不能等待结果并处理下一个客户。当队伍空了,他就可以继续点菜了,这可能是厨师在这段时间内完成的。他会一直等到厨师通知他订单已经完成,然后他可以查看备注(回复结束),看看是哪位顾客点的菜,然后上菜。他需要一次端上所有的菜,不要被其他厨师打断

有关技术说明,请阅读。

您所说的“它必须阅读所有代码”是什么意思?整个文件在被解释之前被读取、解析和编译。