ECMAScript學習(三)

Promise

作用:

The Promise object represents the eventual completion (or failure) of an asynchronous operation, and its resulting value.
Promise 對象是 JavaScript 的異步操作解決方案,爲異步操作提供統一接口。它起到代理作用(proxy),充當異步操作與回調函數之間的中介,使得異步操作具備同步操作的接口。Promise 可以讓異步操作寫起來,就像在寫同步操作的流程,而不必一層層地嵌套回調函數。

定義

new Promise(
 /* executor */
 function(resolve, reject) { ... }
 );

實例

異步請求一張網絡圖片

let data = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1527252256191&di=7b25587cff2e776e89552261e850e286&imgtype=0&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201504%2F12%2F20150412H1301_ZH4Mw.jpeg';
console.log('promise前面');
// 異步
let p = new Promise(function(resolve, reject) {
  let img = new Image(); // 創建一個圖片
  img.src = data; // 給這個圖片添加一個地址
  // 請求成功了
  img.onload = function() {
      resolve(this);
  };
  // 請求失敗了
  img.onerror = function() {
      reject('圖片請求失敗了');
  };
  console.log('promise本身的構造函數是一個同步')
});
console.log('promise中間');
// 成功了
p.then(function(data) {
  // console.log(data);
  document.body.appendChild(data);
  console.log('promise執行成功');
});
// 失敗執行
p.catch(function(err) {
  console.log(err);
  console.log('promise執行失敗');
});
console.log('promise後面');

圖片請求成功會在瀏覽器上顯示並且打印結果:

promise前面
promise本身的構造函數是一個同步
promise中間
promise後面
promise執行成功

擴展運算符

Set

Map

類和對象

原型鏈

模版字符串

模塊化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章