ECMAScript 6 Promise

Promise 是异步编程的一种解决方案,比传统的回调函数和事件--更全理和更强大。

es6进行了统一用法,提供了promise

promise简单说就是一个容器,里面保存着未来某会结束的事件。

从语法上说,Promise是一个对象,从它可以获取异步操作的消息。

对象的状态不受外界影响。它有三个状态pending 进行中  resolved 完成,rejected 失败。

一旦状态改变,就不会再变。

var promise = new Promise(function(resolve, reject) {
  // ... some code 
  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});
promise对象是一个构造函数,用来生成 promise实例。

生成实例后,可用then了

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

有时需要将现有对象转为Promise对象,Promise.resolve方法就起到这个作用。

var jsPromise = Promise.resolve($.ajax('/whatever.json'));

上面代码将jQuery生成的deferred对象,转为一个新的Promise对象。

Promise.resolve等价于下面的写法。

Promise.resolve('foo') // 等价于 new Promise(resolve => resolve('foo'))

你可能感兴趣的:(ECMAScript 6 Promise)