Promise.resolve() 和Promise.reject() 使用及其覆盖场景

要想了解这些首先我们先要明确一点 什么是 Promise
官方的解释:Promise 对象用于表示一个异步操作的最终完成 (或失败)及其结果值。
深层的描述可以解释成 *

一个 Promise 对象代表一个在这个 promise 被创建出来时不一定已知的值。它让您能够把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。 这样使得异步方法可以像同步方法那样返回值:异步方法并不会立即返回最终的值,而是会返回一个 promise,以便在未来某个时候把值交给使用者。

  • 供其使用的方法也有很多例如
    Promise.resolve() 和Promise.reject() 使用及其覆盖场景_第1张图片

Promise.resolve()

**Promise.resolve(value)**方法返回一个以给定值解析后的Promise 对象。如果这个值是一个 promise ,那么将返回这个 promise ;如果这个值是thenable(即带有"then" 方法),返回的promise会“跟随”这个thenable的对象,采用它的最终状态;否则返回的promise将以此值完成。此函数将类promise对象的多层嵌套展平。

  1. 立即执行并返回一个结果
    在这里插入图片描述
  2. 用来作为一个数据类型定义使用
let ctx = Promise.resolve();
let ctx = null

在接收数据前后的使用是我们常常做空判断,如果使用Promise.resolve()定义可以忽略这一步 因为这样定义的之后前后数据的类型是一致的
  1. 将所有类型都转成Promise
    在这里插入图片描述

    Promise.reject

**Promise.reject(reason)**方法返回一个新的Promise实例,状态为Rejected。Promise.reject方法的参数reason会被传递给实例的回调函数。

foo=(Val)=> {
    if (!Val) {
        return Promise.reject(new Error('Val is required'))
    }
    return new Promise((res, rej) => {
        // 这些将巨大的 callback 转成 promise
    })
}.then 中使用 reject:
getLoad=(ps)=>{
//回调函数
 readFile(ps).then(v => {
  if (v != 5) {
    return Promise.reject('err');
  }
})
.catch(e => console.log(e)) //err
}

更多场景使用还请移步Promise

你可能感兴趣的:(js,javascript,前端,vue.js)