美文网首页1024ES6
17.ES6 Promise.all 异步操作并行

17.ES6 Promise.all 异步操作并行

作者: 圆梦人生 | 来源:发表于2019-02-15 11:42 被阅读0次

在ES6中可以将多个Promise.all异步请求并行操作:
1、当所有结果成功返回时按照请求顺序返回成功;
2、当其中有一个失败方法时,则进入失败方法;

案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Promise-all</title>
    <script>
        // Promise all可以增加多个Promise异步操作并行请求
        // 当所有结果成功返回时按照执行顺序返回结果
        // 当其中有一个失败方法时,则进入失败方法
        let promiseUtil = (url)=>{
           //
           return new Promise((resolve, reject)=>{
                // 使用setTimeout 模拟ajax请求
                // ajax....异步请求
                setTimeout(()=>{
                    let sucessFlag = true;
                    // 模拟失败...
                    // if(url.includes('baidu.com')){
                    //     //
                    //     sucessFlag = false;
                    // }
                    //
                    if(sucessFlag){
                        // 模拟成功
                        resolve({
                            sucesss: true,
                            message: '操作成功',
                            url: url,
                            data: {
                                name: (Math.random() * 100).toFixed()
                            }
                        })
                    }else{
                        // 模拟失败
                        reject({
                            sucesss: true,
                            message: '操作失败',
                            url: url
                        })
                    }
                }, 2000)
            })
           
        }

        // 使用Promise.all发送请求
        // 如果中间有一个失败,则进入失败方法
        Promise.all([
            promiseUtil('http://www.baidu.com'),
            promiseUtil('http://www.g.cn'),
        ]).then((data)=>{
            // 执行成功
            console.log('请求成功:');
            //
            let [ data1, data2 ] = data;
            //
            console.log(data1, data2);
        }, (error)=>{
            console.log('请求失败:')
            console.log(error);
        })
    </script>
</head>
<body>
    
</body>
</html>

相关文章

  • 17.ES6 Promise.all 异步操作并行

    在ES6中可以将多个Promise.all异步请求并行操作:1、当所有结果成功返回时按照请求顺序返回成功;2、当其...

  • JavaScript学习----Promise并行执行异步操作(

    Promise.all Promise的all方法提供了并行执行异步操作的能力执行回调的时机:所有异步操作执行完成...

  • webpack 4.0 AsyncHook(异步钩子)

    1.异步并行钩子 执行结果: 此例类比Promise.all,所有异步成功完成之后,执行最终的回调,tapable...

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • promise 并行 串行

    Promise.all并行执行promise 顺序执行promise 1.使用then链式操作 2.使用promi...

  • ES6的学习(下)

    promise:异步操作同步化 同步 -- 串行 简单、方便异步 -- 并行 性能高、体验好promise的是...

  • Promise、Promise.all、Promise.race

    Promise 的用途 Promise代表了一个异步操作的最终完成或者失败,支持链式调用和并行多异步操作,解决地狱...

  • VUE多个方法执行完回调

    用Promise.all来实现。Promise是ES6的新特性,用于处理异步操作逻辑,用过给Promise添加th...

  • 2020-03-01 Promise.all

    先说一下 关于 promise.all 的应用场景,如果你的项目需要依赖两个异步操作结束操作之后,再往后进行, 可...

  • Nodejs : promise的优雅异步

    前言 Nodejs 异步操作是基于回调的,在日常的项目开发中有很多时候都会需要并行或者多个异步操作嵌套使用,这样就...

网友评论

    本文标题:17.ES6 Promise.all 异步操作并行

    本文链接:https://www.haomeiwen.com/subject/syspeqtx.html