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方法
170 0
|
1月前
|
JavaScript 前端开发
[Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Navigating to current loca
[Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Navigating to current loca
42 0
|
1月前
|
前端开发
promise和async的区别是什么?
promise和async的区别是什么?
11 1
|
6月前
|
前端开发
promise中reject和catch处理上有什么区别
promise中reject和catch处理上有什么区别
71 0
|
2月前
|
前端开发
async/await返回的promise被解析为undefined的可能原因
`async/await` 通常与 `Promise` 一起使用,但如果返回的 `Promise` 被解析为 `undefined`,可能有几个原因。以下是一些可能的情况和解决方法
|
7月前
|
前端开发
17 # 静态方法 resolve 和 reject 的区别
17 # 静态方法 resolve 和 reject 的区别
32 0
|
9月前
|
前端开发
promise ,async/await的基础用法
promise ,async/await的基础用法
|
10月前
|
前端开发
🤔 为什么是Promise.resolve()而不是Promise.fulfill()
`Promise.resolve()` ,如果它返回一个已经完成的Promise,为什么不将其命名为 `Promise.fulfill()` 之类的名称?**`Promise.resolve()`** 是一个很奇怪的名字,不是吗?🤔它返回一个已经完成的Promise,但它听起来像是要解决一个问题。🤷‍♂️
45 0
|
12月前
|
前端开发 C++
【面试】‘return await promise‘ 与 ‘return promise‘ 这细微的区别,你的可能还不知道?
当从一个异步函数的promise返回时,我们可以使用return await promise等待 promise 解析完,也可以直接返回它 return promise。
|
JavaScript 前端开发 API
Js 异步处理演进,Callback=>Promise=>Observer
异步调用就像是接水管,相互缠绕的管道越多,就越容易漏水。如何将水管巧妙连通,使整个系统有足够的弹性,需要去认真思考 🤔 对于 JavaScript 异步的理解,不少人感到过困惑:Js 是单线程的,如何做到异步的呢?实际上,Js 引擎通过混用 2 种内存数据结构:栈和队列,来实现的。栈与队列的交互也就是大家所熟知的 Js 事件循环~~