ES 6 中Promise对象的出现为了解决JS异步编程的问题。

一个 Promise 对象可以理解为一次将要执行的操作(常常被用于异步操作),使用了 Promise 对象之后可以用一种链式调用的方式来组织代码,让代码更加直观。而且由于Promise.all这样的方法存在,可以让同时执行多个操作变得简单。

Promise对象的三种状态:

1.Fulfilled -----成功

2.Rejected------失败

3.pending -----promise对象实例创建的初始状态


Promise对象的两个重要方法:----resolve(成功) && reject(失败)

resolve方法可以使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操作。

reject方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操作。

functionhelloWorld(ready){returnnewPromise(function(resolve,reject){if(ready){resolve("HelloWorld!");//成功时调用的参数}else{reject("Goodbye!");//失败时调用的参数}});}helloWorld(true).then(function(message){alert(message);},function(error){alert(error);});


then方法:then(onFulfilld, onRejected)

根据 Promise 对象的状态来确定执行的操作,resolve 时执行第一个函数(onFulfilled),reject 时执行第二个函数(onRejected)。


functionprintHello(ready){returnnewPromise(function(resolve,reject){if(ready){resolve("Hello");}else{reject("Goodbye!");}});}functionprintWorld(){alert("World");}functionprintExclamation(){alert("!");}printHello(true).then(function(message){alert(message);}).then(printWorld).then(printExclamation);