老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

es6中Promise對象的功能有哪些-創新互聯

es6中Promise 對象的功能有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

創新互聯是專業的安龍網站建設公司,安龍接單;提供成都做網站、成都網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行安龍網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

基本用法

ES6 規定,Promise對象是一個構造函數,用來生成Promise實例。

const promise = new Promise(function(resolve, reject) {
 //resolve (data)  成功
 //reject  (error )失敗
});

Promise實例生成以后,可以用then方法分別指定resolved狀態和rejected狀態的回調函數。

promise.then(function(value) {
 // success
}, function(error) {
 // err
});

then方法可以接受兩個回調函數作為參數。第一個回調函數是Promise對象的狀態變為resolved時調用,第二個回調函數是Promise對象的狀態變為rejected時調用。其中,第二個函數是可選的,不一定要提供。這兩個函數都接受Promise對象傳出的值作為參數。

下面是一個Promise對象的簡單例子

function fun(ms){
 return new promise((res,rej) => {
 setTimeout(res,ms)
 })
}
fun(100).then((val) => {
 console.log(val)
})

promise還可以用來加載圖片

function loadImageAsync(url) {
 return new Promise(function(resolve, reject) {
  const image = new Image();
  image.onload = function() {
   resolve(image);
  };
  image.onerror = function() {
   reject(new Error('Could not load image at ' + url));
  };
  image.src = url;
 });
}

上面代碼中,使用Promise包裝了一個圖片加載的異步操作。如果加載成功,就調用resolve方法,否則就調用reject方法。

2,用Promise對象實現的 Ajax 操作的例子。

const getJSON = function(url) {
 const promise = new Promise(function(resolve, reject){
  const handler = function() {
   if (this.readyState !== 4) {
    return;
   }
   if (this.status === 200) {
    resolve(this.response);
   } else {
    reject(new Error(this.statusText));
   }
  };
  const client = new XMLHttpRequest();
  client.open("GET", url);
  client.onreadystatechange = handler;
  client.responseType = "json";
  client.setRequestHeader("Accept", "application/json");
  client.send();
 });
 return promise;
};
getJSON("/posts.json").then(function(json) {
 console.log('Contents: ' + json);
}, function(error) {
 console.error('出錯了', error);
});

注意,調用resolve或reject并不會終結 Promise 的參數函數的執行。

Promise.prototype.finally()

finally方法用于指定不管 Promise 對象最后狀態如何,都會執行的操作。該方法是 ES2018 引入標準的。

promise
.then(result => {···})
.catch(error => {···})
.finally(() => {···});

上面代碼中,不管promise最后的狀態,在執行完then或catch指定的回調函數以后,都會執行finally方法指定的回調函數,finally本質上是then方法的特例。

Promise.resolve()

//有時需要將現有對象轉為 Promise 對象,Promise.resolve方法就起到這個作用。
const jsPromise = Promise.resolve($.ajax('/whatever.json'));

上面代碼將 jQuery 生成的deferred對象,轉為一個新的 Promise 對象。

Promise.resolve等價于下面的寫法。

Promise.resolve('foo')
// 等價于
new Promise(resolve => resolve('foo'))
//Promise.resolve方法的參數分成四種情況。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。


網頁題目:es6中Promise對象的功能有哪些-創新互聯
URL標題:http://www.xueling.net.cn/article/hpshh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美视频裸体精品 | 凤隐电视连续剧免费观看 | 久久9精品区-无套内射无码 | 在线精品亚洲一区二区不卡 | 成人午夜性A级毛片免费 | 久久这里都是精品 | 婷婷色婷婷开心五月四房播播 | 99精品久久99久久久久胖女人 | 日韩av一级片 | 国产福利91精品一区 | 午夜好爽好舒服免费视频 | 久久久久久久久久久久久女国产乱 | 久久精品视频6 | 免费人妻无码不卡中文字幕系列 | 日本老妇性视频 | 天堂俺去俺来也www 日韩免费 | 久久99精品久久久秒播软件优势 | 国产成人看片 | 国产三级农村妇女做受 | 久久国产成人精品国产成人亚洲 | 亚洲视频在线观看一区二区 | 日韩1级片 | 色屁屁WWW影院免费观看入口 | 亚洲一级特黄 | 舌L子伦熟妇ΑV | 91视频中文字幕 | 久久久久久少妇 | 久久这里有精品 | 性做爰片免费视频毛片中文 | 天天干天天草天天爽 | 91精品亚?影视在线?看 | 一区二区三区在线视频播放 | 一区二区三区精密机械公司 | 欧美成人aaaaaaaa免费 | 久久亚洲av成人无码国产最大 | 欧美草草| 高清av网站 | 亚洲国产精品一区二区999 | 丰满少妇被猛烈进出69影院 | 欧美9999| 国产免费视频一区二区三区 |