關(guān)于promise

本文章完全參考 阮一峰老師的es6-promise。如果有啥問題可以直接去看原文!

什么是promise,簡(jiǎn)單地來說,就是一個(gè)容器,保存著未來才會(huì)結(jié)束的事情(異步操作)

promise是個(gè)對(duì)象。
特點(diǎn):1.對(duì)象狀態(tài)不受外界影響。只有異步操作的結(jié)果,可以決定當(dāng)前是什么狀態(tài),其他都無法改變。
有三種狀態(tài):pengding (進(jìn)行中)fulfilled(已成功) rejected(已失?。?/code>
2.一旦狀態(tài)改變,就不會(huì)再改變。任何時(shí)候都可以得到這個(gè)結(jié)果。
狀態(tài)改變只有兩種可能 => 1.pending > fulfilled(已成功)
2.pending > rejected(已失敗)
狀態(tài)一旦改變成功,則不會(huì)改變,一直保持這個(gè)結(jié)果,成為 resolved(已定型) 。即使添加回調(diào)函數(shù),也是立即得到這個(gè)結(jié)果。
缺點(diǎn):1.無法取消,一旦新建則立即執(zhí)行,無法中途取消。2.如果不設(shè)置回調(diào),則內(nèi)部拋出的錯(cuò)誤,不會(huì)反應(yīng)到外部。3.如果處于pending狀態(tài),無法得知進(jìn)展(剛開始還是即將完成?)


開始使用啦~
簡(jiǎn)單實(shí)用方法:

       let getData = function () {
                    return new Promise(function (resolve, reject) {
                        $.get(url.imgid, { id: ids }, function (d) {
                            $.get(url.img, { id: d.data.hdimg[0].id }, function (ds) {
                                resolve(ds);//=return d
                            })
                        })

                    })
                };

                getData().then(function (ds) {
                    console.log(ds);
                })
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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