6.ES6-Promise对象

ゝ一世哀愁。 2023-06-18 05:54 41阅读 0赞

文章目录

    • Promise对象
      • 一.Promise
      • 二.基本用法
      • 三.then()
    • 参考文档

Promise对象

一.Promise

  1. Promise简单来说就是一个容器,里边保存着某个未来才会结束的事件(通常是一个异步操作)的结果.
  2. Promise对象有以下两个特点

    • 对象的状态不受外界影响. Promise对象代表一个异步操作, 有三种状态: Pending(进行中)、Resolved(已完成,又称Fulfilled)和Rejected(已失败). 只有异步操作的结果才能决定当前是那种状态,任何其他操作都无法改变这个状态.
    • 一旦状态改变就不会再变,任何时候都可以得到这个结果. Promise对象的状态改变,只有两种可能: 从Pending变成Resolved和从Pending变为Rejected. 只要这两种情况发生, 状态就凝固了,不会再变了, 会一直保持这个结果.

二.基本用法

  1. ES6规定,Promise对象是一个构造函数, 用来生成Promise实例.

    1. var promise = new Promise(function(resolve,reject){
    2. //...
    3. if(/* 异步操作成功 */){
    4. resolve(value);
    5. }else {
    6. reject(error);
    7. }
    8. })
  2. Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数.

    1. promise.then(function(value){
    2. //success
    3. },function(error){
    4. //failure
    5. })

    then方法可以接受两个回调函数作为参数. 第一个回调函数是Promise对象的状态变为Resolved时调用,第二个回调函数是Promise对象的状态变为Reject时调用. 其中, 第二个函数是可选的, 不一定要提供. 这两个函数都接受Promise对象传出的值作为参数.

  3. Promise新建之后会立即执行

    1. let promise = new Promise(function(resolve,reject){
    2. console.log('Pormise');
    3. resolve();
    4. });
    5. promise.then(function(){
    6. console.log('Resolved');
    7. });
    8. console.log('Hi!');
    9. //Promise
    10. //Hi!
    11. //Resolved

    Promise新建后立即执行,所以首先输出的是”Promise”. 然后, then方法指定的回调函数, 将在当前脚本所有同步任务执行完才会执行, 所以”Resolved”最后输出.

  4. 如果调用resolve函数和reject函数时带有参数,那么它们的参数会被传递给回调函数.
  5. 将需要异步执行的任务添加到Promise容器中
  6. 通过then方法完成promise附件任务的添加,
  7. promise作用:实现异步执行的任务具备同步执行的顺序

三.then()

  1. Promise实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的。它的作用是为了Promise实例添加状态改变时的回调函数.
  2. then方法返回的是一个新的Promise实例(注意, 不是原来的那个promise实例). 因此可以采用链式写法, 即then方法后边再调用另一个then方法.

    1. getJSON("/posts.json").then(function(json){
    2. return json.post;
    3. }).then(function(post){
    4. //...
    5. });

    上面的then方法,依次指定了两个回调函数. 第一个回调函数完成以后, 会将返回结果作为参数, 传入第二个回调函数.

参考文档

ES6官方文档

发表评论

表情:
评论列表 (有 0 条评论,41人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6--Promise对象

    Promise对象:代表了未来某个将要发生的操作,通常是异步操作 promise对象可以将异步操作以同步的流程表达出来,避免了层层嵌套的 回调函数(回调地狱),ES6的

    相关 ES6 -- Promise对象

    Promise是一种异步编程的解决方案,ES6提供原声的Promise,它比传统的解决方案,回调函数和事件,更加合理和强大。 Promise对象有以下两个特点: 1、对象的

    相关 es6Promise 对象

    Promise 是异步编程的一种解决方案,解决——回调函数和事件 ES6 规定,Promise对象是一个构造函数,用来生成Promise实例。 下面代码创造了一个Prom

    相关 ES6标准----Promise对象

       Promise的含义:         Promise是异步编程的一种解决方法,比传统的解决方法——回调函数和事件—更合理和强大。    它由社区最早提出和实现,

    相关 ES6--Promise对象

    概述 是异步编程的一种解决方案。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。 Promise 状态 状态的特点 Promise 异步操