美文网首页
promise对象

promise对象

作者: 梦里coding | 来源:发表于2018-10-19 11:57 被阅读0次

    1、基本用法

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

    下面代码创造了一个Promise实例。

    const promise = new Promise(function(resolve, reject) {
      // ... some code
    
      if (/* 异步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    });
    

    Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。
    其中resolve函数的作用是promise对象请求成功后的调用方法,如果有参数将会传递出去,reject函数的作用是promise对象请求失败后的调用方法,如果有参数将会传递出去。
    Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

    promise实现多层嵌套

    const p1 = new Promise(function (resolve, reject) {
      // ...
    });
    
    const p2 = new Promise(function (resolve, reject) {
      // ...
      resolve(p1);
    })
    

    其中p1和p2都是promise实例,而p2的resolve方法将p2做为参数,即一个异步结果返回另一个异步操作,这样就实现了promise的异步嵌套。

    new Promise((resolve, reject) => {
      resolve(1);
      console.log(2);
    }).then(r => {
      console.log(r);
    });
    // 2
    // 1
    

    相关文章

      网友评论

          本文标题:promise对象

          本文链接:https://www.haomeiwen.com/subject/bdryzftx.html