zoukankan      html  css  js  c++  java
  • 疑问,这一系列的异步操作如何做同步化改造?有这个必要吗?

        在p204有下面这个例子,当然,书中并没有给出step1...step4的实现,这个实现是我加的。
     
    function step1(func){    
        process.nextTick(function(){
            console.log('step1');
            func(1);
        });
    }
    function step2(val, func){
        process.nextTick(function(){
            console.log('step2,' + val);
            func(val+1);
        });
    }
    function step3(val, func){
        process.nextTick(function(){
            console.log('step3,' + val);
            func(val+1);
        });
    }
    function step4(val, func){
        process.nextTick(function(){
            console.log('step4,' + val);
            func(val+1);
        });
    }
    step1(function(val1){
        step2(val1, function(val2){
            step3(val2, function(val3){
                step4(val3, function(val4){
                    console.log('val4, ', val4);
                })
            })
        })
    })
        我想既然这些函数要接受一个回到函数,肯定是因为内部有一些操作是异步的,比如这个nextTick,或者是ajax调用,等等。
        我现在不明白的是,作者在205中假定了step1...step4已经进行了同步化改造。然后再用generator函数来调用这些函数,那么究竟改造之后的step1...step4函数是什么样的呢?他如何把其中的异步操作变成同步的呢?
        而且有必要变成同步的吗?JavaScript的美妙不就是因为他可以大量的使用异步吗?我觉得promise的语法挺优美的啊,为啥要进行generator的同步化改造呢?
     
     
        
  • 相关阅读:
    继承(JAVA)
    第一个Java应用
    Java面向对象编程
    学生管理系统(分层开发)
    ComboBox的数据联动
    二进制、八进制、十进制、十六进制之间的转换
    C# using的一些事
    JVM最多支持多少个线程?
    Java日志体系居然这么复杂?——架构篇
    java 架构之路(队列)kafka
  • 原文地址:https://www.cnblogs.com/strinkbug/p/6713354.html
Copyright © 2011-2022 走看看