zoukankan      html  css  js  c++  java
  • 关于异步处理的几个阶段

    settimeout函数

    function ajax(){
        setTimeout(()=>{
            console.log('你好')
        },1000)
    }
    ajax()
    console.log('执行结果')
    
    //回调函数进行处理,先打印执行结果:你好,执行结束
    //回调函数解决顺序问题
    function ajax(fn){
        setTimeout(()=>{
            console.log('你好')
            fn()
        },1000)
    }
    ajax(()=>{
        console.log('执行结束')
    })
    console.log('执行结果')
     //callback回调地狱 
    function ajax(fn){
        setTimeout(()=>{
            console.log('你好')
            fn()
        },1000)
    }
    ajax(()=>{
        console.log('执行结束')
        // 里面的ajax从外层开始回调的哦console.log('执行结束2')根据放的位置不同
        //也会在不同时候打印呢,
        ajax(()=>{
            ajax(()=>{
                ajax(()=>{
                    console.log('执行结束2')
                })
            })
           
        })
    })
    console.log('执行结果')
    

    promise下一代异步解决方案
    在promise中处理异步

    
    function delay(word){
        return new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve(word)
            },2000)
        })
    }
    delay('哪吒')
        .then((word)=>{
            console.log(word)
            return delay('杨戬')
        })
        .then((word)=>{
            console.log(word)
            return delay('观音菩萨')
        })
        .then((word)=>{
           console.log(word)
        })
    

    async最终异步处理结果,使用koa可以运行出结果,浏览器并不行啊,我亲测过

      function delay(word){
            return new Promise((resolve,reject)=>{
                setTimeout(()=>{
                    resolve('hello'+word)
                },2000)
            })
        }
        async function start(){
            const word1 = await delay('孙悟空')
            console.log(word1)
            const word2 = await delay('唐僧')
            console.log(word2)
            const word3 = await delay('猪八戒')
            console.log(word3)
        }
        start()
    
  • 相关阅读:
    (一)lamp 环境搭建之编译安装apache
    ssl 原理和建立连接过程
    lamp 架构的理解
    diff 命令,防止遗忘
    关于云计算的一些概念理解
    lvs 四层负载相关
    Mac 安装Git
    Harbor镜像仓库v2.1.0_2安装与使用
    CentOS部署Harbor镜像仓库
    从harbor部署到在k8s中使用
  • 原文地址:https://www.cnblogs.com/smart-girl/p/11270625.html
Copyright © 2011-2022 走看看