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

 huangzhu321 发布于 2023-01-18 21:26

我一直在观看Node.js上的一些YouTube视频,我对这个框架非常着迷.许多人围绕节点进行快餐比喻,他们说这就像接受订单一样; 帮助下一个客户; 接受订单; 等等,回调是你的订单.要么我错过了,要么我不理解.但是在回调发生之前它是否必须读取所有代码?

下面是一些测试流程的代码,以便我更好地理解,结果支持只有在所有指令完成后才会发生回调.这意味着在控制台输出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');   

Bergi.. 6

客户1在客户3放置之前获得订单吗?

不.把它放在你的快餐类比中:

只有一名服务员处理所有客户(执行所有操作的单个线程).当柜台上有一行(报表)时,他需要立即处理所有这些行.在此期间,他可能会按照客户的要求向其他员工(后台流程)发出(异步)订单,但他不能等待结果并处理下一个客户.当队列为空时,他可以回到订单,这可能是厨师同时完成的.他会等到厨师通知他订单已经完成,然后他可以检查笔记(关闭回调),看看哪个顾客订购了食物,然后送达.他需要再次提供所有菜肴,而不是被其他厨师打断.

有关技术说明,请阅读Node 事件循环.

1 个回答
  • 客户1在客户3放置之前获得订单吗?

    不.把它放在你的快餐类比中:

    只有一名服务员处理所有客户(执行所有操作的单个线程).当柜台上有一行(报表)时,他需要立即处理所有这些行.在此期间,他可能会按照客户的要求向其他员工(后台流程)发出(异步)订单,但他不能等待结果并处理下一个客户.当队列为空时,他可以回到订单,这可能是厨师同时完成的.他会等到厨师通知他订单已经完成,然后他可以检查笔记(关闭回调),看看哪个顾客订购了食物,然后送达.他需要再次提供所有菜肴,而不是被其他厨师打断.

    有关技术说明,请阅读Node 事件循环.

    2023-01-18 21:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有