zoukankan      html  css  js  c++  java
  • 【06】next() 伪函数

    串行,第一个完成后,去执行第二个第二个异步任务,使用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();
    })()
  • 相关阅读:
    招银网络
    MYSQL基础
    http中get和post请求的作用和区别
    设计模式
    STL浅析
    云盾态势感知系统检测到您的服务器出现了紧急安全事件:挖矿木马
    SVN服务器搭建详解--权限划分
    MySQL主主复制,mysql主从复制,MySQL+keepalived故障转移。
    Redhat7.0系统利用amoeba对mysql数据进行读写分离的操作,MySQL数据库的主从配置
    源码安装zabbix LNMP源码安装
  • 原文地址:https://www.cnblogs.com/yeziTesting/p/7128525.html
Copyright © 2011-2022 走看看