Promise概念介绍

Posted 若兰明月

tags:

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

Promise概念介绍

  • 1、Promise 是一个构造函数,既然是构造函数,那我们就可以 new Promise() 得到一个Promise的实例
  • 2、在 Promise 上,有两个函数,分别叫做 resolve (成功之后的回调函数) 和 reject (失败之后的回调函数)
  • 3、在 Promise 的构造函数 Prototype 属性上,又一个 .then() 方法,也就是说只要是Promise 构造函数创建的实例,都可以访问到 .then() 方法
  • 4、Promise 表示一个异步操作;每当我们new 一个 Pormise 的实例,这个实例就表示一个具体的异步操作
  • 5、既然 Promise 创建的实例是一个异步操作,那么这个异步操作的结果就只能有两种状态
    • 5.1、状态一:异步执行成功了 需要在内部调用 成功的额回调函数 resolve 把结果返回给调用者
    • 5.2、状态二:异步执行失败了 需要在内部调用失败的回调函数 reject 把结果返回给调用者
    • 5.3、由于 Promise 的实例是一个异步操作,所以内部拿到操作结果之后,无法使用 return 把操作结果返回给调用者,只能使用回调函数的形式,来把成功或者失败的结果,返回给调用者。
  • 6、我们可以在 new 出来的 Promise 实例上,调用.then() 方法,预先为这个Promise异步操作,指定 成功(resolve) 和失败(reject) 回调函数

使用Promise

//注意这里new 出来的Promise  只是代表【形式上的一个异步操作】
//什么是形式上的异步操作,  就是说  我们只知道他是一个异步操作,但是做什么具体的异步操作,目前还不知道
<!--var promise = new Promise()-->

//这是一个具体的异步操作
var promise = new Promise(function()
    //这个function里面具体的相关操作
)

每当new 一个 Promise 实例的时候  就会立即执行这个异步操作中的代码

也就是说 new 的时候 除了能得到一个promise实例之外,还会立即调用我我们为 Promise 构造函数传递的那个 function 执行这个function中的异步操作的代码

Promise的异常捕获和作用

需求:
    哪怕签名的 Promise 执行失败了,但是为了不要影响后续的 Promise 的正常执行,此时我们可以单独为每个 promise 通过.then 指定一下失败的回调
    
    有时候还有这样的需求 和上面的需求相反,如果后续的Promise执行依赖于前面的Promise的执行的结果,如果前面的失败了,则后面的不需要执行,也就是前面一旦有出错,后续不需要执行 
    
         在前面的promise里面不进行catch捕获异常,而是在最后一个promise进行catch进行异常捕获

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

[转]JS - Promise使用详解1(基本概念使用优点)

promise执行顺序

Promise学习

Vue第八天学习笔记之Promise和Vuex详解

Vue第八天学习笔记之Promise和Vuex详解

大白话讲解Promise