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

在ES6中可以將多個(gè)Promise.all異步請(qǐng)求并行操作:
1、當(dāng)所有結(jié)果成功返回時(shí)按照請(qǐng)求順序返回成功;
2、當(dāng)其中有一個(gè)失敗方法時(shí),則進(jìn)入失敗方法;

案例:

<!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可以增加多個(gè)Promise異步操作并行請(qǐng)求
        // 當(dāng)所有結(jié)果成功返回時(shí)按照?qǐng)?zhí)行順序返回結(jié)果
        // 當(dāng)其中有一個(gè)失敗方法時(shí),則進(jìn)入失敗方法
        let promiseUtil = (url)=>{
           //
           return new Promise((resolve, reject)=>{
                // 使用setTimeout 模擬ajax請(qǐng)求
                // ajax....異步請(qǐng)求
                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發(fā)送請(qǐng)求
        // 如果中間有一個(gè)失敗,則進(jìn)入失敗方法
        Promise.all([
            promiseUtil('http://www.baidu.com'),
            promiseUtil('http://www.g.cn'),
        ]).then((data)=>{
            // 執(zhí)行成功
            console.log('請(qǐng)求成功:');
            //
            let [ data1, data2 ] = data;
            //
            console.log(data1, data2);
        }, (error)=>{
            console.log('請(qǐng)求失?。?)
            console.log(error);
        })
    </script>
</head>
<body>
    
</body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容