3 # 通过回调函数处理异步并发问题

简介: 3 # 通过回调函数处理异步并发问题

如何同时获取多个异步请求的最终结果

在文件夹 file 里新建两个文件:name.txtage.txt,分别写点文本

我们可以使用回调函数实现效果:

// 多个异步请求 如何同时获取最终结果
let fs = require("fs");
let person = {};
let index = 0;
const cb = () => {
    if (++index === 2) {
        console.log("person--->", person);
    }
};
fs.readFile("./file/name.txt", "utf-8", function (err, data) {
    console.log("name.txt--->", err, data);
    person.name = data;
    cb();
});
fs.readFile("./file/age.txt", "utf-8", function (err, data) {
    console.log("age.txt--->", err, data);
    person.age = data;
    cb();
});

Run Code 之后我们就能同时得到两个异步请求的数据:

我们还可以写得更加通用一点

// 多个异步请求 如何同时获取最终结果
let fs = require("fs");
let person = {};
function after(times, callback) {
    // 闭包函数:函数的定义的作用域跟函数执行的作用域不在同一个作用域下
    return function () {
        if (--times === 0) {
            callback();
        }
    };
}
const cb = after(2, function () {
    console.log("after--person--->", person);
});
fs.readFile("./file/name.txt", "utf-8", function (err, data) {
    console.log("name.txt--->", err, data);
    person.name = data;
    cb();
});
fs.readFile("./file/age.txt", "utf-8", function (err, data) {
    console.log("age.txt--->", err, data);
    person.age = data;
    cb();
});

目录
相关文章
|
12月前
|
机器学习/深度学习 物联网 异构计算
ExVideo+CogVideoX,更长、更优!再次升级的开源视频生成能力
DiffSynth-Studio 再次为 CogVideoX 带来新的增强模块——ExVideo-CogVideoX-LoRA-129f-v1
|
Linux
CentOS 7 安装Boost 1.67及boost_python
CentOS 7 安装Boost 1.67及boost_python
1598 0
|
安全 存储 网络安全
信息安全管理与评估DCST-6000B-Pro神州数码堡垒机沙箱连接教程
信息安全管理与评估DCST-6000B-Pro神州数码堡垒机沙箱连接教程
信息安全管理与评估DCST-6000B-Pro神州数码堡垒机沙箱连接教程
|
API Python
Blender导出带透明贴图的gltf模型
Blender导出带透明贴图的gltf模型
522 0
Blender导出带透明贴图的gltf模型
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
220 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
数据采集 安全 API
DataphinV4.1大升级: 支持Lindorm开启高性价比数据治理,迎来“公共云半托管”云上自助新模式
Dataphin 是阿里巴巴旗下的一个智能数据建设与治理平台,旨在帮助企业构建高效、可靠、安全的数据资产。在V4.1版本升级中,Dataphin 引入了Lindorm等多项新功能,并开启公共云半托管模式,优化代码搜索,为用户提供更加高效、灵活、安全的数据管理和运营环境,提升用户体验,促进企业数据资产的建设和价值挖掘。
1937 3
DataphinV4.1大升级: 支持Lindorm开启高性价比数据治理,迎来“公共云半托管”云上自助新模式
|
算法 安全 网络安全
网络安全&密码学—python中的各种加密算法
数据加密是一种保护数据安全的技术,通过将数据(明文)转换为不易被未经授权的人理解的形式(密文),以防止数据泄露、篡改或滥用。加密后的数据(密文)可以通过解密过程恢复成原始数据(明文)。数据加密的核心是密码学,它是研究密码系统或通信安全的一门学科,包括密码编码学和密码分析学。
消费级显卡微调可图Kolors最佳实践!
近期,快手开源了一种名为Kolors(可图)的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。
|
安全 中间件 Linux
安全厂商长擎软件加入龙蜥社区,共建领先的 OS 基础设施
长擎软件的加入将进一步助力龙蜥操作系统的安全能力增强。
|
算法 异构计算
基于FPGA的FSK调制解调通信系统verilog实现,包含testbench
基于FPGA的FSK调制解调通信系统verilog实现,包含testbench
584 3