Node异步

一 Node异步工作原理

Node.js 异步编程的直接体现就是回调,回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。

二 同步代码示例

先建立一个txt文件,写入:

I am txt

再建立一个syn.js文件:

var fs = require("fs");

var data = fs.readFileSync(‘input.txt‘);

console.log(data.toString());

console.log("程序执行结束!");

用node运行:

从上图可以看出同步是顺序执行

三 Node异步代码示例

先建立一个txt文件,写入:

I am txt

再建立一个asyn.js文件:

var fs = require("fs");

fs.readFile(‘input.txt‘, function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序执行结束!");

用node运行:

上面例子说明不需要等待读取的结果,先执行下面的代码,等读取完毕后再把读取的内容展示出来,大大节约了时间

时间: 2024-11-17 17:52:19

Node异步的相关文章

node 异步编程

node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 该方法是最直接常用的异步操作方式,比如在setInterval 和 ajax等会使用到, 存在缺点有: 1.代码不易阅读并且容易出现金字塔嵌套问题; 2.一般只能对应一个回调函数(一对一),使用上有一定的限制; fs.readFile('/etc/passwd', function (err, d

【Node.js基础篇】(七)Node异步编程之事件发射器

事件发射器是Node里除了回调函数外的另一十分重要的异步编程技术. 在MFC等图形界面编程库中,事件发射器是非常常见的,比如,鼠标点击事件,点击了鼠标后,就会触发鼠标点击后的函数--事件发射器触发事件,并且在事件被触发后处理它们.在Node API组件中,如HTTP服务器.TCP服务器等都被做成了事件发射器,所以掌握事件发射器的编程方法,是非常重要的. 使用on添加监听器 步骤: 声明事件发射器类 创建事件发射器对象 使用on添加事件发射器 使用emit发射事件 //事件发射器类声明 var E

JavaScript工作原理和Node异步I/O

1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序.比如var a=1+2:对于静态语言来说(如Java.C++.C),处理上述这些事情的叫编译器(Compiler),相应地对于JavaScript这样的动态语言则叫解释器(Interpreter).这两者的区别用一句话来概括就是:编译器是将源代码编译为另外一种代码(比如机器码,或者字节码),而解释器是直接解析并将代码运行结果输出. 比方说

node.js零基础详细教程(4):node.js事件机制、node异步IO操作

第四章 建议学习时间3小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑.编写接口,最后完成一个完整的项目后台,预计共10天课程. node.js事件机制 node.js是单线程,但是通过事件和回调支持并发,可以实现非常高的性能. node.js所有的API都是通过异步调用.第一堂课的时候,我们写过一个同步和异步的示例(如下),当初说到:同步代码先执行完成,然后才执行异步

node 异步回调解决方法之yield

先看如何使用 使用的npm包为genny,npm 安装genny,使用 node -harmony 文件(-harmony 为使用es6属性启动参数) 启动项目 var genny= require('genny'); genny.run(function* (resume) { console.log("Hello"); yield setTimeout(resume(), 1000); console.log("World"); }); 输出Hello 暂停1秒

[NodeJS]Node异步编程基础

零.前言 为什么要用Node? Node把非阻塞IO作为提高应用性能的方式.而在JS中,天生拥有着异步编程机制: 事件机制.同时JS中不存在多进程.这样当你执行相对较慢需要花费时间长的IO操作时并不会阻塞主进程的任务. 在NodeJS中流行两种响应逻辑的管理方式: 回调, 事件监听. 回调通常用来定义一次性响应的逻辑.事件监听器本质上也是一个回调,不同的是它跟事件相互关联. 一.使用回调来处理一次性事件 回调是一个函数,被当做参数传递给异步函数,描述了异步操作完成后要做什么. 案例: 创建一个简

获取node异步执行结果的方式

拿数据库操作举例: var connection = mysql.createConnection(); connection.query(sql,function(err,rows){xxx} ); 如果写成: var rows = connection.query(sql,function(err,rows){xxx} );  //connection.query()不返回值,最后打印出undefined console.log(rows); 或者 var res: connection.q

node异步编程的集中解决方案

一丶通过递归处理异步回调 var fs = require('fs'); // 要处理的文件列表 var files = ['file1', 'file2', 'file3']; function parseFile () { if (files.length == 0) { return; } var file = files.shift(); fs.readFile(file, function (err, data) { // 这里处理文件数据 parseFile(); // 处理完毕后,

node 异步加载百度地图

export default { init: function (){ const AK = "AFNGWoP3YTGstfhT6BQUcsm5xGodgTIv"; const BMap_URL = "https://api.map.baidu.com/api?v=3.0&ak="+ AK +"&s=1&callback=onBMapCallback"; return new Promise((resolve, rejec