promise的基礎認知及學習

var flag = true;
        var message = '我是初始值'
        var p = new Promise(function(resolve,reject) {
            setTimeout(()=>{
                if (flag) {
                    resolve('異步加載成功')
                    // 傳遞的至關於掉完接口獲得的data
                }else {
                    reject('失敗')
                    // 傳遞的至關於掉接口失敗所得的信息
                }
            },5000)
        })
        // .then()方法傳遞兩個參數都是function,第二個參數的函數不是必填,也可寫在.catch()方法裏和.then同級
        p.then(function (aaa) {
            // 第一個參數用來接收成功的data並進行處理
            message=aaa
            // console.log(message);
        },function (bbb) {
            // 第二個參數用來接收失敗的信息並進行處理
            message = bbb
            // console.log(message);
        })
        // console.log(message);

        // .all()方法同時處理多個異步任務,全部任務完成才能返回結果
        // .race()方法同時處理多個異步任務,只要有一個任務完成就能返回結果
        function pp(text,time) {
            return new Promise(function(resolve,reject) {
            setTimeout(()=>{
                if (flag) {
                    resolve(text)
                    // 傳遞的至關於掉完接口獲得的data
                }else {
                    reject('失敗')
                    // 傳遞的至關於掉接口失敗所得的信息
                }
            },time)
            })
        }
        // pp('我成功了',3000).then((data)=>{
        //     console.log(data);
        // })
        Promise.all([pp('111',1000),pp('222',2000),pp('333',3000)]).then((data)=>{
            console.log(data);
        })
        Promise.race([pp('111',1000),pp('222',2000),pp('333',3000)]).then((data)=>{
            console.log(data);
        })
相關文章
相關標籤/搜索