promise对象

一、什么是promise?

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

二、promise对象特点:

(1)对象状态不会受到外界的影响,Promise对象代表一个异步操作,只有这个异步操作的结果可以决定是那种状态,其他任何操作都不会对它产生改变
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果

三、同步和异步

同步:一次执行一个任务,在函数被调用后函数执行结束后,才能进行执行下一次任务
异步:它可以执行多个任务,和同步相反

创建一个promise实例:

const promise = new Promise(function(resolve, reject) {
  // ... some code

  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});
resolve:在操作成功时调用,把结果作为参数传递出去。
reject:在操作失败后,吧失败的信息作为参数传递出去

什么是回调函数?

把一个函数A传给另一个函数B调用,那么A就是回调函数

promise的三种状态

1.pending:初始值,不是fulfilled,也不是rejected
2.fulfilled:代表操作成功
3.rejected:代表操作失败

then

then可以接受两个回调函数作为参数第一个是变为resolve调用另一个是变为reject调用
  console.log('promise');
  resolve();
});

promise.then(function() {
  console.log('resolved.');
});

console.log('Hi');
他会最先输出promise,那个then方法会等其他的任务执行完后,在执行所以他会先输出hi,最后才是resolved

ECMAScript 6 入门:链接

阅读 50

推荐阅读