串行,第一个完成后,去执行第二个第二个异步任务,使用next()尾函数。首先我么想完成三个任务,task1,task2,task3,如图:

实现方式1:

var fs = require("fs");
function task1(){
fs.readFile('./a.txt',function(err,data){
console.log(data.toString());
task2();
})
} function task2(){
fs.readFile('./b.txt',function(err,data){
console.log(data.toString());
task3();
})
} function task3(){
fs.readFile('./b.txt',function(err,data){
console.log(data.toString());
})
}
task1();

实现方式2:使用task函数

var fs = require("fs");
function task1(){
fs.readFile('./a.txt',function(err,data){
console.log("a---"+data.toString());
next();
})
} function task2(){
fs.readFile('./b.txt',function(err,data){
console.log("b---"+data.toString());
next();
})
} function task3(){
fs.readFile('./b.txt',function(err,data){
console.log("c---"+data.toString());
})
}
//串行可以在任务1中调用任务2 ,任务2调用任务3
//第二种方式:
var taskArray = [task1,task2,task3];
function next(){
//数组中shift方法,删除第一个元素
var task = taskArray.shift();
console.log(task)
task();
} next();

或者:

var fs = require("fs");
function task1(next){
fs.readFile('./a.txt',function(err,data){
console.log("a---"+data.toString());
next();
})
} function task2(next){
fs.readFile('./b.txt',function(err,data){
console.log("b---"+data.toString());
next();
})
} function task3(next){
fs.readFile('./b.txt',function(err,data){
console.log("c---"+data.toString());
})
}
//串行可以在任务1中调用任务2 ,任务2调用任务3
//第二种方式:
var taskArray = [task1,task2,task3];
(function(){ function next(){
//数组中shift方法,删除第一个元素
var task = taskArray.shift();
console.log(task)
task(next);
}
next();
})()

【06】next() 伪函数的更多相关文章

  1. 《HelloGitHub月刊》第06期

    前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...

  2. iOS系列 基础篇 06 标签和按钮 (Label & Button)

    iOS系列 基础篇 06 标签和按钮 (Label & Button) 目录: 标签控件 按钮控件 小结 标签和按钮是两个常用的控件,下面咱们逐一学习. 1. 标签控件 使用Single Vi ...

  3. javaSE基础06

    javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...

  4. 异步编程系列06章 以Task为基础的异步模式(TAP)

    p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...

  5. javascript基础06

      javascript基础06 splice var del_arr = del.splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返 ...

  6. Linux 第06天

    Linux 第06天 1.SAMBA服务器————(linux和windows的文件共享) 1.1 安装 yum install samba -yum 1.2 配置文件 /etc/samba/smb. ...

  7. plsql11.06注册码

    plsql11.06注册码:Product Code(产品编号):4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number(序列号):601769password ...

  8. shell脚本中的几个括号总结(小括号/大括号/花括号)--from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html

    在Shell中的小括号,大括号结构和有括号的变量,命令的用法如下: 1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=stri ...

  9. VMware10.06精简版安装后台运行

    VMware10.06精简版安装时会出现一个安装功能选择菜单,里面有一条后台运行必选功能,一般人会跳过条.当你打算在服务器上用vmware时,一定要安装后台运行服务,否则你无法换出正在运行的后台虚拟机 ...

随机推荐

  1. ATM-db-dnhandler

    import os,jsonfrom conf import settings def select(name): user_path = os.path.join(settings.BASE_DB, ...

  2. 数据结构-队列(Queue)

    #include <stdio.h> #include <stdlib.h> #define LIST_INIT_SIZE 10 #define LISTINCREMENT 1 ...

  3. linux shell 单双引号区别

    简要总结: 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看见的是什么就会输出什么. 双引号: 把双引号内的内容输出出来:如果内容中有命令,变量等,会先把变量,命令解析 ...

  4. LOJ #6008. 「网络流 24 题」餐巾计划

    #6008. 「网络流 24 题」餐巾计划 题目描述 一个餐厅在相继的 n nn 天里,每天需用的餐巾数不尽相同.假设第 i ii 天需要 ri r_ir​i​​ 块餐巾.餐厅可以购买新的餐巾,每块餐 ...

  5. LoadRunner11的安装和使用及其注意点(测试系统是win7)

    一.安装 LoadRunner11的下载地址:http://www.ddooo.com/softdown/61971.htm 链接标题里[loadrunner11 中文破解版]实质上下载下来是没有破解 ...

  6. exkmp略解

    推导 ext[i]表示母串s[i..lens]和子串t[1..lent]的最长公共前缀. nxt[i]表示t[i..lent]和t[1..lent]的最长公共前缀. 假设ext[1..k]已经算好,现 ...

  7. OpenStack之虚机热迁移代码解析

    OpenStack之虚机热迁移代码解析 话说虚机迁移分为冷迁移以及热迁移,所谓热迁移用度娘的话说即是:热迁移(Live Migration,又叫动态迁移.实时迁移),即虚机保存/恢复(Save/Res ...

  8. Python-S9-Day87——admin的使用

    01 admin的使用1 02 admin的使用2 03 admin的使用3 04 url方法的使用 05 单例模式 06 admin源码之注册功能 07 admin源码之url设计 08 admin ...

  9. scripts

    Shell Script:================================================================ 示例1:[root@server0 ~]# ...

  10. Oracle 学习----:创建表(主键自增)

    一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary ...