ES6语法之异步编程-Promise

Promise

分解异步操作,避免回调地狱

            //1.promise            //分解异步操作,避免回调地狱            function testMise(value) {                //resolve成功后回调                //reject失败后回调                return new Promise((resolve, reject) => {                    //模拟异步请求                    setTimeout(() => {                        console.log('请求中:', value)                        if (value > 0) {                            resolve('请求完成');                        }                        if (value < 0) {                            reject('请求失败'   value);                        }                    }, 2000)                })            }            //promis函数返回.then()成功后执行.catch()失败后执行            testMise(-1).then(res => {                console.log(res)            }).catch(err => {                console.log(err)            })

2.若有多个异步函数依次执行完成再执行下一个函数时

            //2.若有多个异步函数依次执行完成再执行下一个函数时            function testEmploy() {                //使用链式调用                //注意then()方法里返回的必须是下一个promise函数                testMise(5).then(res => { //请求中5                    return testMise(4) //请求中4                }).then(res => {                    return testMise(3) //请求中3                }).then(res => {                    //请求失败则进入下一个then第二个参数                    return testMise(-1) //请求中-1                }).then(res => {                    console.log(res)                }, err => {                    console.log(err) //请求失败-1                    return testMise(1) //请求中1                }).then(res => {                    console.log(res) //请求完成                }).catch(err => {                    console.log(err)                })            }            testEmploy();

3.Promise.all

全部异步函数执行完成后再执行then回调

            //3.Promise.all            // 全部异步函数执行完成后再执行then回调            //res是返回所有函数的参数的数组,            Promise.all([testMise(7), testMise(8), testMise(9), testMise(1)]).then(res => {                console.log('全部执行完成', res)            })

4.Promise.race

有一个执行完成就执行then回调

            //4.Promise.race            //有一个执行完成就执行then回调            //res是返回第一个执行完成的参数            Promise.race([testMise(11), testMise(12), testMise(13), testMise(14)]).then(res => {                console.log('有一个执行完成', res)            })

来源:https://www.icode9.com/content-1-768651.html

(0)

相关推荐

  • 深浅克隆和Promise异步编程

    深克隆和浅克隆 浅克隆 arr.slice(0) arr.concat() let obj2 = {... obj} 深克隆 function deepClone(obj){ //判断参数是不是一个对 ...

  • 异步编程之Promise

    一.Promise 1. .then 和.catch · resolved 状态的Promise 会回调后面的第一个.then · rejected 状态的Promise 会回调后面的第一个.catc ...

  • 如何使用Python异步编程进行API调用 | 区块链研究实验室

    原创 链三丰 区块链研究实验室 今天 收录于话题 #Python1 #区块链技术33 #区块链44 #API1 #区块链应用30 本文中,将向大家介绍如何使用Python异步编程,以便您可以更快地进行 ...

  • C# 异步编程

    基于Task的异步编程模式(TAP)是Microsoft为.Net平台下使用Task进行编程所提供的一组建议,这种模式提供了可以被await消耗(调用)方法的APIs,并且当使用async关键字编写遵 ...

  • 一文说通C#中的异步编程

    天天写,不一定就明白. 又及,前两天看了一个关于同步方法中调用异步方法的文章,里面有些概念不太正确,所以整理了这个文章.   一.同步和异步. 先说同步. 同步概念大家都很熟悉.在异步概念出来之前,我 ...

  • 异步解决方案----Promise与Await

    目录 前言 一.Promise的原理与基本语法 1.Promise的原理 2.Promise的基本语法 二.Promise多个串联操作 三.Promise常用方法 四.Async/Await简介与用法 ...

  • ES6语法简介——3、默认参数和rest参数

    3.默认参数和rest参数 3.1.默认参数 ES5没有提供直接在参数列表指定参数默认值的语法,在ES6中简化了为形参提供默认值的过程,可以直接在参数列表中为形参指定默认值. 例: function ...

  • 异步编程终极解决方案async-await

    一.async/await · async function 是Promise 的语法糖封装  · 异步编程的终极方案– 以同步的方式写异步 · await 关键字可以"暂停"as ...

  • ES6语法:函数新特性(一)

    ES6 函数 引言: 函数在任何语言中偶读很重要,java里面的函数通常叫做方法,其实是一个东西,使用函数可以简化更多的代码,代码结构看着更加清晰.今天我们来学学ES6语法中,函数有什么变化. 虽然现 ...

  • 那些轻松拿高薪的程序员,在学完编程基础语法之后做了些什么?

    对于一个想要入行IT的新人,怎样选择一个前景好的编程语言十分很重要!让我们来看看那些拿高工资的程序员,到底是学的什么编程语言吧? 下面我介绍几个可以帮助你扎实地掌握编程基础知识,并且能够提升编程能力的 ...