首頁  >  文章  >  web前端  >  關於promise物件的簡單用法

關於promise物件的簡單用法

一个新手
一个新手原創
2017-09-23 10:41:542037瀏覽

promise物件是es6中提出的解決非同步回呼的一種方案,作為一個新手,最近剛剛把這個玩意給弄清楚些。來寫這篇文章,希望能得到一些高人的指點,同時我也覺得對於新手不了解promise的朋友們會有一些幫助。

廢話不多說,關於介紹promise的話不多說了,有同學不明白的可以自行百度,本文只寫一個promise的簡單實例,相信稍微看過一些promise的朋友,但是對他又比較畏懼的(因為之前我不懂這個玩意兒的時候,感覺這玩意非常高大上)看了實例能對他有一個新的認識。接下來直接附上我寫的簡單的一個ajax請求:

function get(url) {
        return new Promise((resolve, reject) => {
            var ajax = new XMLHttpRequest();
            ajax.open('GET', url);
            ajax.onreadystatechange = function() {
                if (ajax.readyState == 4) { 
                    if(ajax.status == 200){
                        resolve(ajax);
                    }else{
                        alert(2);
                        reject();
                    }   
                }
            }
            ajax.send();
        });
    }

    document.getElementById('btn').onclick = function() {
        get('b.json').then(function(res) {
            
            console.log(res.responseText);
            document.getElementById('p1').innerHTML = res.responseText;
        });
    }


因為介紹es6的對象,所以本文使用了一些es6的語法,如果有同學不明白的可以自行百度,promise物件接收兩個參數,resolve跟reject,我個人的理解就是成功跟失敗(如果我的理解有錯,希望有大神可以指正,畢竟剛學會),ajax的幾個步驟我就不多說了,我們直接在get函數裡邊return這個promise對象,在這個promise對像中係我們的ajax方法,最後ajax請求成功。這時候resolve就派上用場了,resolve(ajax);之後 就結束了,如果不成功呢就直接reject()即可(相當請求失敗)。

最後,這個promise簡單的案例就這麼完成了大家可以再自己搭的環境下測試一下

以上是關於promise物件的簡單用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn