Node.js链式回调

简介:

      由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现的异步方法,所以刷新的时候并没有数据,为了解决这个问题,一般会在请求响应结束在block中刷新页面(这就回出现循环引用的问题,不过node中不会出现).

     上面是OC中异步执行中的链式回调,在node.js中也是使用这样的方法在回调中调用方法来实现链式回调。


function logCar(car,callback)
{
    console.log("Saw a %s",car);
    process.nextTick(callback);
}
function logCars(cars)
{
    var car=cars.pop();
    if (cars.length)
    {
      logCar(car,function(){
        logCars(cars);;
      });
    }
}
var cars = ["Ferrari", "Porsche", "Bugatti",
  "Lamborghini", "Aston Martin"];
logCars(cars);

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe callback_chain.js
Saw a Aston Martin
Saw a Lamborghini
Saw a Bugatti
Saw a Porsche

Process finished with exit code 0


node.js自学阶段总结:

从之前到现在的几篇博客算是把Node.js中基础的语法整理理解了一下,这些算是为以后的打的基础.下面要学的Buffer、Stream为文件模块、Http、套接字等打下基础,算是循序渐进吧.后面的大部分都是熟悉接口的一些应用,今天看了下Buffer、Stream和文件部分,都是Node.js的一些API的使用,理解方面也不算太难理解,主要还是这几天的一些node.js的模型、运行机制以及js的面向对象、回调的比较不好理解。

 


相关文章
|
JavaScript API 数据库
Node.js AsyncHooks 与异步回调上下文
我们都知道,Nodejs 最显著特点是单进程、异步、事件驱动。每当我们的代码碰到异步调用时,需要传入一个回调函数,等待异步调用结束时再被执行。
Node.js AsyncHooks 与异步回调上下文
nodejs4.x框架能收到异步回调请求不能正常解析数据
说明:      目前商户遇到nodejs基于express3.x框架return_url、notify_url能收到通知并解析数据。针对嫁接到express4.x框架能收到异步请求,req.body为空,无法解析异步数据。
374 0
|
前端开发
node.js异步控制流程 回调,事件,promise和async/await
写这个问题是因为最近看到一些初学者用回调用的不亦乐乎,最后代码左调来又调去很不直观。 首先上结论:推荐使用async/await或者co/yield,其次是promise,再次是事件,回调不要使用。 接下来是解析,为什么我会有这样的结论 首先是回调,理解上最简单,就是我把任务分配出去,当你执行完了...
1591 1
|
JavaScript 前端开发
|
2月前
|
Web App开发 缓存 JavaScript
【安装指南】nodejs下载、安装与配置详细教程
这篇博文详细介绍了 Node.js 的下载、安装与配置过程,为初学者提供了清晰的指南。读者通过该教程可以轻松完成 Node.js 的安装,了解相关配置和基本操作。文章首先介绍了 Node.js 的背景和应用场景,随后详细说明了下载安装包、安装步骤以及配置环境变量的方法。作者用简洁明了的语言,配以步骤图示,使得读者能够轻松跟随教程完成操作。总的来说,这篇文章为初学者提供了一个友好的入门指南,使他们能够顺利开始使用 Node.js 进行开发。
194 1
【安装指南】nodejs下载、安装与配置详细教程
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
77 0
|
3月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
35 0
|
3月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
42 0
|
18天前
|
JavaScript Windows
NodeJS 安装及环境配置
NodeJS 安装及环境配置
|
27天前
|
Linux 开发工具 git
node使用nrm 管理托管node的安装源
node使用nrm 管理托管node的安装源
43 1