Promise 对象

Posted piaobodewu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Promise 对象相关的知识,希望对你有一定的参考价值。

Promise 是 ES6 引入的封装异步操作的统一接口。它返回一个对象,包含了异步操作的信息。

Promise 本身是一个构造函数,提供了resolvereject两个方法。一旦异步操作成功结束,就调用resolve方法,将 Promise 实例对象的状态改为resolved,一旦异步操作失败,就调用reject方法,将 Promise 实例的状态改成rejected

function timeout(duration = 0) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, duration);
  })
}

  

上面代码中,timeout函数返回一个 Promise 实例,在指定时间以后,将状态改为resolved

var p = timeout(1000).then(() => {
  return timeout(2000);
}).then(() => {
  throw new Error("hmm");
}).catch(err => {
  return Promise.all([timeout(100), timeout(200)]);
})

一旦 Promise 实例的状态改变以后,就可以使用then()方法指定下面将要执行的函数,catch()方法用来处理rejected状态的情况。

以上是关于Promise 对象的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

前端片段整理

什么时候然后从Promise.all()的子句运行?

ES6 promise对象

JavaScript - Promise对象

Promise对象