這篇“怎么構(gòu)造JavaScript Promise”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么構(gòu)造JavaScript Promise”文章吧。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、伊川網(wǎng)站維護、網(wǎng)站推廣。
Promise 是一個 ECMAScript 6 提供的類,目的是更加優(yōu)雅地書寫復(fù)雜的異步任務(wù)。
由于 Promise 是 ES6 新增加的,所以一些舊的瀏覽器并不支持,蘋果的 Safari 10 和 Windows 的 Edge 14 版本以上瀏覽器才開始支持 ES6 特性。
構(gòu)造 Promise
現(xiàn)在我們新建一個 Promise 對象:
new Promise(function (resolve, reject) {
// 要做的事情...
});
通過新建一個 Promise 對象好像并沒有看出它怎樣 "更加優(yōu)雅地書寫復(fù)雜的異步任務(wù)"。我們之前遇到的異步任務(wù)都是一次異步,如果需要多次調(diào)用異步函數(shù)呢?例如,如果我想分三次輸出字符串,第一次間隔 1 秒,第二次間隔 4 秒,第三次間隔 3 秒:
實例
setTimeout(function () {
console.log("First");
setTimeout(function () {
console.log("Second");
setTimeout(function () {
console.log("Third");
}, 3000);
}, 4000);
}, 1000);
這段程序?qū)崿F(xiàn)了這個功能,但是它是用 "函數(shù)瀑布" 來實現(xiàn)的。可想而知,在一個復(fù)雜的程序當(dāng)中,用 "函數(shù)瀑布" 實現(xiàn)的程序無論是維護還是異常處理都是一件特別繁瑣的事情,而且會讓縮進(jìn)格式變得非常冗贅。
現(xiàn)在我們用 Promise 來實現(xiàn)同樣的功能:
實例
new Promise(function (resolve, reject) {
setTimeout(function () {
console.log("First");
resolve();
}, 1000);
}).then(function () {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log("Second");
resolve();
}, 4000);
});
}).then(function () {
setTimeout(function () {
console.log("Third");
}, 3000);
});
這段代碼較長,所以還不需要完全理解它,我想引起注意的是 Promise 將嵌套格式的代碼變成了順序格式的代碼。
以上就是關(guān)于“怎么構(gòu)造JavaScript Promise”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:怎么構(gòu)造JavaScriptPromise
瀏覽地址:http://aaarwkj.com/article36/pesppg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、App開發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站改版、關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)