ES 6 中Promise对象的出现为了解决JS异步编程的问题。
javascript
一个 Promise 对象能够理解为一次将要执行的操做(经常被用于异步操做),使用了 Promise 对象以后能够用一种链式调用的方式来组织代码,让代码更加直观。并且因为 Promise.all
这样的方法存在,能够让同时执行多个操做变得简单。java
Promise对象的三种状态:编程
1.Fulfilled -----成功
promise
2.Rejected------失败异步
3.pending -----promise对象实例建立的初始状态
ide
Promise对象的两个重要方法:----resolve(成功) && reject(失败)
异步编程
resolve
方法能够使 Promise 对象的状态改变成成功,同时传递一个参数用于后续成功后的操做。函数
reject
方法则是将 Promise 对象的状态改变为失败,同时将错误的信息传递到后续错误处理的操做。url
function helloWorld (ready) { return new Promise(function (resolve, reject) { if (ready) { resolve("Hello World!"); //成功时调用的参数 } else { reject("Good bye!"); //失败时调用的参数 } }); } helloWorld(true).then(function (message) { alert(message); }, function (error) { alert(error); });
then方法: then(onFulfilld, onRejected)
spa
根据 Promise 对象的状态来肯定执行的操做,resolve 时执行第一个函数(onFulfilled),reject 时执行第二个函数(onRejected)。
function printHello (ready) { return new Promise(function (resolve, reject) { if (ready) { resolve("Hello"); } else { reject("Good bye!"); } }); }function printWorld () { alert("World"); }function printExclamation () { alert("!"); } printHello(true) .then(function(message){ alert(message); }) .then(printWorld) .then(printExclamation);