zoukankan      html  css  js  c++  java
  • js中promise解决callback回调地狱以及使用async+await异步处理的方法

    1、callback回调地狱

    function ajax(fn) {
        setTimeout(()=> {
            console.log('你好')
            fn()
        }, 1000)
    }
    ajax(() => {
        console.log('执行结束')
        ajax(()=>{
            console.log('执行结束')
            ajax(()=>{
                console.log('执行结束')
                ajax(()=>{
                    console.log('执行结束')
                })
            })
        })
    })

    2、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)
        })
        .catch
    console.log('执行结束')

    3、async+await优雅处理异步

    function delay(word) {
        return new Promise((resolve, reject) => {
            setTimeout(()=>{
                resolve(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()
    今天你学习了吗!!!
  • 相关阅读:
    Solution -「ARC 126F」Affine Sort
    Solution -「ABC 219H」Candles
    Solution -「LOCAL」二进制的世界
    Solution Set -「ABC 217」
    Java 封装
    Java 对象和类
    Java 继承
    牛客网MySQL在线编程
    Linux uniq命令
    Linux 单引号、双引号、反引号
  • 原文地址:https://www.cnblogs.com/nayek/p/11701316.html
Copyright © 2011-2022 走看看