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方法
233 0
|
1月前
|
前端开发
使用 Promise.all 处理多个 Promise 同时失败的情况
【10月更文挑战第26天】通过以上几种方法,我们可以根据具体的需求和环境选择合适的方式来处理多个 `Promise` 同时失败的情况,从而更好地进行错误处理和程序的稳定性保障。
149 2
|
5月前
|
前端开发 JavaScript
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
js【详解】Promise(含 Promise 的三种状态及其变化,创建 Promise, Promise.all 语法、Promise.all 实战范例、手写 Promise.all)
729 0
|
5月前
|
Java Maven
Cannot resolve method ‘success‘ in ‘Result‘
Cannot resolve method ‘success‘ in ‘Result‘
|
前端开发
promise中reject和catch处理上有什么区别
promise中reject和catch处理上有什么区别
175 0
|
7月前
|
前端开发
async/await返回的promise被解析为undefined的可能原因
`async/await` 通常与 `Promise` 一起使用,但如果返回的 `Promise` 被解析为 `undefined`,可能有几个原因。以下是一些可能的情况和解决方法
|
7月前
|
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
217 0
|
7月前
|
前端开发
ES7 async await return value
ES7 async await return value
53 1
|
前端开发
17 # 静态方法 resolve 和 reject 的区别
17 # 静态方法 resolve 和 reject 的区别
59 0
|
前端开发
promise ,async/await的基础用法
promise ,async/await的基础用法