return和reject、resolve的配合使用

简介: return和reject、resolve的配合使用

场景:对于new Promise,都需要一个结束状态来终结此操作,无论是resolve/reject;那么resolve/reject是否就表示终结了流程的执行呢?


原因:resolve/reject只能改变promise的状态,但是reject和resolve都无法让函数剩下的部分暂停执行。


解决方式:通常情况下,会在需要返回的resolve/reject后,加上return,进行终止js流程的操作。

function test(a, b) {
      return new Promise((resolve, reject) => {
        if (a === 1) {
          console.log(1)
          reject(1)
          return
        }
        if (b === 1) {
          console.log(2)
          reject(2)
          return
        }
        console.log(3)
        resolve(3)
      })
    }
test(1, 0).then((result) => console.log('result: ', result)).catch((error) => console.log('error: ', error))


相关文章
|
前端开发
promise的resolve,reject,all方法
promise的resolve,reject,all方法
212 0
|
22天前
|
前端开发
手写实现ES6的Promise.all()和Promise.race()函数
这篇文章介绍了如何手写实现ES6的`Promise.all()`和`Promise.race()`函数,提供了实现这两个Promise聚合函数的详细代码示例,并展示了如何使用它们。
手写实现ES6的Promise.all()和Promise.race()函数
|
2月前
|
前端开发 JavaScript
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
162 0
|
10月前
|
前端开发
promise中reject和catch处理上有什么区别
promise中reject和catch处理上有什么区别
114 0
|
4月前
|
前端开发
async/await返回的promise被解析为undefined的可能原因
`async/await` 通常与 `Promise` 一起使用,但如果返回的 `Promise` 被解析为 `undefined`,可能有几个原因。以下是一些可能的情况和解决方法
|
4月前
|
前端开发
ES7 async await return value
ES7 async await return value
38 1
|
11月前
|
前端开发
17 # 静态方法 resolve 和 reject 的区别
17 # 静态方法 resolve 和 reject 的区别
44 0
|
前端开发
🤔 为什么是Promise.resolve()而不是Promise.fulfill()
`Promise.resolve()` ,如果它返回一个已经完成的Promise,为什么不将其命名为 `Promise.fulfill()` 之类的名称?**`Promise.resolve()`** 是一个很奇怪的名字,不是吗?🤔它返回一个已经完成的Promise,但它听起来像是要解决一个问题。🤷‍♂️
59 0
|
前端开发 C++
【面试】‘return await promise‘ 与 ‘return promise‘ 这细微的区别,你的可能还不知道?
当从一个异步函数的promise返回时,我们可以使用return await promise等待 promise 解析完,也可以直接返回它 return promise。
|
前端开发
前端学习案例24-promise.all和promise.race之2
前端学习案例24-promise.all和promise.race之2
73 0
前端学习案例24-promise.all和promise.race之2