• 什么是地狱回调?解决回调地狱的两种方法


    什么是地狱回调?解决回调地狱的两种方法:https://blog.csdn.net/Frazier1995/article/details/115513199

    地狱回调概念:回调函数套回调函数的情况就叫做回调地狱,

    //地狱回调
    setTimeout(function () { //第一层
    console.log('武林要以和为贵');
    setTimeout(function () { //第二程
    console.log('要讲武德');
    setTimeout(function () { //第三层
    console.log('不要搞窝里斗');
    }, 1000)
    }, 2000)
    }, 3000)
    promise解决方式
    // promise解决方式
    function fn(str) {
    var p = new Promise(function (resolve, reject) {
    //处理异步任务
    var flag = true;
    setTimeout(function () {
    if (flag) {
    resolve(str)
    }
    else {
    reject('操作失败')
    }
    })
    })
    return p;
    }

    fn('武林要以和为贵')
    .then((data) => {
    console.log(data);
    return fn('要讲武德');
    })
    .then((data) => {
    console.log(data);
    return fn('不要搞窝里斗')
    })
    .then((data) => {
    console.log(data);
    })
    .catch((data) => {
    console.log(data);
    })
    async/await解决方式

    //封装一个返回promise的异步任务
    function fn(str) {
    var p = new Promise(function (resolve, reject) {
    var flag = true;
    setTimeout(function () {
    if (flag) {
    resolve(str)
    } else {
    reject('处理失败')
    }
    })
    })
    return p;
    }

    //封装一个执行上述异步任务的async函数
    async function test() {
    var res1 = await fn('武林要以和为贵'); //await直接拿到fn()返回的promise的数据,并且赋值给res
    var res2 = await fn('要讲武德');
    var res3 = await fn('不要搞窝里斗');
    console.log(res1, res2, res3);
    }
    //执行函数
    test()
    ————————————————
    版权声明:本文为CSDN博主「仲夏你的梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Frazier1995/article/details/115513199

     

  • 相关阅读:
    2所非211院校挺进全球高校600强,甩开一众985 | 泰晤士世界大学排行榜出炉
    深度强化学习专栏(三)
    PyTorch专栏(八):微调基于torchvision 0.3的目标检测模型
    PyTorch专栏(六): 混合前端的seq2seq模型部署
    3分钟了解GPT Bert与XLNet的差异
    PyTorch专栏(五):迁移学习
    NLPer,你知道最近很火的自然语言处理库么?
    E
    网络流 I
    D
  • 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/16298399.html
Copyright © 2020-2023  润新知