文档章节

node异步和同步

西米粟
 西米粟
发布于 2017/04/27 18:37
字数 249
阅读 2
收藏 0
点赞 0
评论 0

同步

同步代码异味着每次执行一个操作,在一个操作完成之前,代码的执行会被阻塞无法移动到下一个下一个操作

function sleep(milliseconds){
  var start = new Date().getTime();
  while((new Date().getTime()-start)<milliseconds){

  }
}

function fetchPage(){
  console.log('one');
  sleep(2000);
  console.log('sleep two');
}


function fetchApi(){
  console.log('three ');
  sleep(2000);
  console.log('sleep four');
}
fetchPage();
fetchApi();

node.js几乎不使用同步而使用异步

异步

一旦调用无需等待,立即调用.并且是非阻塞的.两个函数会侦听远程服务器的返回,并以此触发回调函数.

var http = require('http');

function fetchPage(){
  console.log('fetchPage');
  http.get({host:'www.baidu.com',path:'/?delay-2000'},function(res){
    console.log('date return from requesting page');
  }).on('error',function(e){
    console.log('There was an error '+e);
  });
}

function fetchApi(){
  console.log('fetchApi');
  http.get({host:'www.baidu.com',path:'/?delay-2000'},function(res){
    console.log('date return from requesting api');
  }).on('error',function(e){
    console.log('There was an error '+e);
  })
}

fetchPage();
fetchApi();

函数的回调顺序无法保证,与网络有关

© 著作权归作者所有

共有 人打赏支持
西米粟
粉丝 1
博文 34
码字总数 10760
作品 0
南京
程序员
回复 《吐槽swoole》

看到这篇博文,深感欣慰。有人喷是好事,说的好的地方对我们是巨大的帮助。实话说口水战没意思,我对这个毫无兴趣,只是为了传播的更广。 后面不会再喷Node.js了,主要原因是: 我不是资深的...

matyhtf ⋅ 2014/07/28 ⋅ 11

基于Lua实现的脚本和服务器引擎--Node-Lua

Node-Lua是一款基于Lua实现的脚本和服务器引擎,它支持构建海量Lua服务(ContextLua)并以多线程方式运行在多核服务器上,采用了任务多路复用的设计方案,有效利用了多核优势。node-lua致力于构...

socoding ⋅ 2016/03/17 ⋅ 5

Node.js的特点

作为后端JavaScript的运行平台,Node保留了前端JavaScript中些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛应用的思想作用到了服务器端。下面我...

天才小龙 ⋅ 01/05 ⋅ 0

node学习笔记03(异步I/O)

用户体验 异步的概念首先在web2.0中火起来,是因为浏览器中的javascript在单线程上执行, 而且它还与UI的渲染共用一个线程,这意味着javascript在执行的时候UI渲染和响应式处于停滞状态的 如果脚...

funkyLover ⋅ 2014/04/09 ⋅ 0

NODEJS如何优雅的实现同步?

先描述一下场景: 我需要用NODEJS实现一个"无驱网络打印服务"实现:客户端(浏览器)-(httppost)->NODEJS打印服务-(socket)->ESC/POS小票打印机; GITHUB上找到了chn-escpos(https://github.com/b...

方小葱 ⋅ 2017/08/11 ⋅ 4

【深入浅出Node.js系列五】初探Node.js的异步I/O实现

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁 ⋅ 2016/01/11 ⋅ 0

ECMAScript 6,令Node.js也可以写出同步执行的代码(上)

从MOsky的博客阅读此文 引言 本人学习Node.js已有两周了,有点心得,写成文章,一方面便于今后自己查阅,另一方面巩固自己所学。如有错误,请诸位赏脸批评指教。 Node.js给我的第一印象就是,...

MOsky ⋅ 2014/04/14 ⋅ 0

node-FS文件系统

fs 模块## 一、同步 和 异步 Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 异步的方法函数最后...

逍遥灬灬 ⋅ 2017/10/18 ⋅ 0

深入浅出Node.js(五):初探Node.js的异步I/O实现

异步I/O 在操作系统中,程序运行的空间分为内核空间和用户空间。我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务。以下伪代码模仿了...

leeldy ⋅ 2012/10/25 ⋅ 0

异步编程解决方案

前言 本文节选朴灵《深入浅出的nodejs》第四章异步编程,整理加分析而得。 异步编程难点 1 异常处理 我们通常用try catch进行异常捕获,但是异步编程包括两个阶段,提交请求和处理,而方法通...

Tolonger ⋅ 2017/10/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部