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()
js中promise解决callback回调地狱以及使用async+await异步处理的方法的更多相关文章
- C#中 Thread,Task,Async/Await 异步编程
		
什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务,调 ...
 - 【转】C# Async/Await 异步编程中的最佳做法
		
Async/Await 异步编程中的最佳做法 Stephen Cleary 近日来,涌现了许多关于 Microsoft .NET Framework 4.5 中新增了对 async 和 await 支 ...
 - .NET Web应用中为什么要使用async/await异步编程
		
前言 什么是async/await? await和async是.NET Framework4.5框架.C#5.0语法里面出现的技术,目的是用于简化异步编程模型. async和await的关系? asy ...
 - Angular JS中 Promise用法
		
一.Promise形象讲解A promise不是angular首创的,作为一种编程模式,它出现在1976年,比js还要古老得多.promise全称是 Futures and promises. 而在j ...
 - ES6新增"Promise"可避免回调地狱
		
Promise是一个构造函数,自己身上有all.reject.resolve这几个眼熟的方法,原型上有then.catch等同样很眼熟的方法. 那就new一个 var p = new Promise( ...
 - JS 中Promise 模式
		
异步模式在web编程中变得越来越重要,对于web主流语言Javscript来说,这种模式实现起来不是很利索,为此,许多Javascript库(比如 jQuery和Dojo)添加了一种称为promise ...
 - 微信小程序:用 Promise 解决方案代替回调地狱。 修复 this._invokeMethod is not a function 的问题
		
/** * 将回调地狱转换为 Promise 形式 * https://blog.csdn.net/SEAYEHIN/article/details/88663740 * raw: wx.downlo ...
 - .NET 中的 async/await 异步编程
		
原文出处: Teroy 的博客 前言 最近在学习Web Api框架的时候接触到了async/await,这个特性是.NET 4.5引入的,由于之前对于异步编程不是很了解,所以花费了一些时间学习一下相关 ...
 - ASP.Net中的async+await异步编程
		
在.NET Framework4.5框架.C#5.0语法中,通过async和await两个关键字,引入了一种新的基于任务的异步编程模型(TAP).在这种方式下,可以通过类似同步方式编写异步代码,极大简 ...
 
随机推荐
- lqb 入门训练 A+B问题
			
入门训练 A+B问题 时间限制:1.0s 内存限制:256.0MB 问题描述 输入A.B,输出A+B. 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标. 输入格式 输入的第 ...
 - Docker解决下载镜像速度慢
			
Docker安装好以后要用Docker pull命令下载镜像,但是会出现下载很慢的现象.Docker默认是国外的源,配置国内镜像仓库. 1.cd /etc/docker/路径下 2.编辑daemon. ...
 - VLAN实验(2)Trunk接口
			
1.选择1台S5700.2台S3700和4台pc机,并根据实验编址完成此拓扑图. 2.启动设备,检查设备的连通性: 由于现在我们还没有划分VLAN,这5台PC,还在同一个VLAN中,现在我们启动所有的 ...
 - django_5:表单1
			
CSRF( Cross Site Request Forgery)跨站点请求欺骗 方法一. {% csrf_token %} 方法二.在setting.py中注释掉MIDDLEWARE中的'djang ...
 - python:类1——类和对象基础
			
一.OO = Object Oriented 面向对象 OOP面向对象编程.OOA面向对象分析.OOD面向对象设计 二.属性+方法——>类(数据和函数) class Turtle(): #类名约 ...
 - i7-9700也能安装Windows7
			
商家说,i7-8700以上不支持Win7,只能安装Win10.我在手机网上也看过同样的说明,是微软与Intel联合行动,意在强迫用户升级到Win10.文章后面有,并不是不能装win7,是没有提供win ...
 - vant-ui的van-area使用
			
由于官方例子中并没有太多详情,因此记录之,方便以后使用. 1.配置 :area-list="areaList",以初始化全部省市区的数据,其中area.js文件在官方可以下载,放于 ...
 - tomcat-9.0.20部署后输出窗口乱码解决方案
			
问题:启动tomcat的时候,窗口乱码,默认都是UTF-8的,但是控制台是GBK的,要保持一致 可以通过控制台查看本机的编码: : 936 代表 GB2312 解决办法:打开tomcat目录下的c ...
 - PowerMock学习(五)之Verifying的使用
			
前言 Verifying是一个非常强大的测试工具,在mock系列框架中使用广泛,主要用于验证方法是否被调用,下面将举例说明. 场景 模拟这样一个场景,通过Dao查询学生,如果存在更新原来学生,不存在则 ...
 - Rocket框架多文件上传,介绍rocket_upload 使用
			
不知道你的体会是什么,我从C切换到Rust以来,最大的感受并不是语法方面的---那些方面已经有足够多人抱怨而又享受着了.我最大的感受是终于把Web编程工具,同系统编程工具统一了起来. C/C++其实也 ...