日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6新特性之Promise

發布時間:2024/4/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6新特性之Promise 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Promise

所謂Promise,簡單說就是一個容器,里面保存著某個未來才會結束的事件(通常是一個異步操作)的結果。從語法上說,Promise 是一個對象,從它可以獲取異步操作的消息。Promise 提供統一的 API,各種異步操作都可以用同樣的方法進行處理。

我們可以通過Promise的構造函數來創建Promise對象,并在內部封裝一個異步執行的結果。

<script>const p = new Promise((resolve, reject) => {// 寫異步的操作,通常是寫ajax的操作setTimeout(() => {// 異步操作(模擬)let num = Math.random();if(num < 0.5){// 認為成功了resolve("成功了 " + num);}else{// 認為失敗了reject("失敗了 " + num);}});});console.log("ok");p.then(value => {console.log(value);}).catch(reason => {console.log(reason);});console.log("ok2");</script>

語法:

const promise = new Promise(function(resolve, reject) { // ... 執行異步操作 if (/* 異步操作成功 */){ resolve(value);// 調用resolve,代表Promise將返回成功的結果 } else { reject(error);// 調用reject,代表Promise會返回失敗結果 } });

這樣,在promise中就封裝了一段異步執行的結果。

如果我們想要等待異步執行完成,做一些事情,我們可以通過promise的then方法來實現,語法:

promise.then(function(value){ // 異步執行成功后的回調 });

如果想要處理promise異步執行失敗的事件,還可以跟上catch:

promise.then(function(value){ // 異步執行成功后的回調 }).catch(function(error){ // 異步執行失敗后的回調 })

示例:

const p = new Promise(function (resolve, reject) { // 這里我們用定時任務模擬異步 setTimeout(() => { const num = Math.random(); // 隨機返回成功或失敗 if (num < 0.5) { resolve("成功!num:" + num) } else { reject("出錯了!num:" + num) } }, 300) }) // 調用promise p.then(function (msg) { console.log(msg); }).catch(function (msg) { console.log(msg); })

?

總結

以上是生活随笔為你收集整理的ES6新特性之Promise的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。