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

类和对象

原型链

模版字符串

模块化

猜你喜欢

转载自blog.csdn.net/WeiAiGeWangFeiYuQing/article/details/84262547