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))


相关文章
|
C语言 开发者
模块化程序设计
模块化程序设计
534 0
|
前端开发 JavaScript
JS中Promise详解
JS中Promise详解
219 0
|
运维 负载均衡 监控
OceanBase数据库认证专家OBCP发布啦!首发期报名培训和认证考试特大优惠!
OBCP 首发期在官网申购考试券并参加考试,享受 5 折优惠!
OceanBase数据库认证专家OBCP发布啦!首发期报名培训和认证考试特大优惠!
|
1月前
|
网络安全 数据安全/隐私保护 开发者
诊断并修复SSH连接Github时遇到的"connection closed"错误。
解决"connection closed"错误往往是一个排除法的过程。需要从基础的网络检查做起,逐步过渡到深入的配置和服务端日志审查。每一步都应当仔细验证,确保不遗漏可能导致连接问题的任何细节。在执行以上步骤后,大多数SSH连接问题可以得到解决。如果所有步骤都未能解决问题,可能需要寻求更专业的技术支持,或者在GitHub社区寻找是否有其他开发者遇到并解决了类似的问题。
273 0
|
12月前
|
JavaScript 前端开发 API
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
本文介绍了如何在Vue 3项目中使用v-md-editor组件库来创建markdown编辑器和预览组件。文章提供了安装步骤、如何在main.js中进行全局配置、以及如何在页面中使用VMdEditor和VMdPreview组件的示例代码。此外,还提供了一个完整示例的链接,包括编辑器和预览组件的使用效果和代码。
vue3 v-md-editor markdown编辑器(VMdEditor)和预览组件(VMdPreview )的使用
|
11月前
|
Web App开发 移动开发 JavaScript
HTML 音频(Audio)详解
HTML5通过`<audio>`元素为网页音频播放提供了丰富支持。本文将介绍其基本用法、属性(如`controls`、`autoplay`)、事件监听、格式兼容性(MP3、OGG、WAV、AAC),并提供JavaScript控制示例。此外,还将讨论优化技巧,如使用CDN、懒加载及提升用户体验的方法。
|
安全 数据管理 PHP
详尽解析:如何在 Laravel 中实现软删除
【8月更文挑战第31天】
435 0
|
存储 算法 Java
Java 中如何比较两个不同大小的 ArrayList
【8月更文挑战第23天】
183 0
|
开发框架 小程序
uniApp——Eslint报错'uni' is not defined
uniApp——Eslint报错'uni' is not defined
632 0