JS单元测试中,Promise如何实现异步代码的神奇效果?

更新于
2026-09-26 12:00:46
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1262个文字,预计阅读时间需要6分钟。

JS单元测试中,Promise如何实现异步代码的神奇效果?

目录+前言+Promise的链式调用+MDN的错误+链式的默认处理+简写+async+await+前言+写这篇文章的起因是在写单元测试时,做如下测试时:new Promise((resolve, reject)=> reject(1)).then(()=> {}).catch(err=> {console.error(err)});

目录
  • 前言
  • promise 的链式调用
  • MDN 的错误
  • 链式的默认处理
  • 简写
  • async await

前言

写这篇文章的起因是在写单元测试时,做形如下测试时

new Promise((resolve, reject) => reject(1)).then().catch(err => { console.log(err) }) async function jestTest () { await Promise.resolve().then() console.log('这个时候catch预期已经被调用,且输出日志') } jestTest()

无法使用await将测试代码恰好阻塞到catch在Event Loop中被调用后的时机,从而检测到catch的执行,通过测试。

而使用“神奇”一词则是因为 promsie 的链式调用中确实有很多默认的 handler 和值的隐含传递。

阅读全文
标签:promise目录

本文共计1262个文字,预计阅读时间需要6分钟。

JS单元测试中,Promise如何实现异步代码的神奇效果?

目录+前言+Promise的链式调用+MDN的错误+链式的默认处理+简写+async+await+前言+写这篇文章的起因是在写单元测试时,做如下测试时:new Promise((resolve, reject)=> reject(1)).then(()=> {}).catch(err=> {console.error(err)});

目录
  • 前言
  • promise 的链式调用
  • MDN 的错误
  • 链式的默认处理
  • 简写
  • async await

前言

写这篇文章的起因是在写单元测试时,做形如下测试时

new Promise((resolve, reject) => reject(1)).then().catch(err => { console.log(err) }) async function jestTest () { await Promise.resolve().then() console.log('这个时候catch预期已经被调用,且输出日志') } jestTest()

无法使用await将测试代码恰好阻塞到catch在Event Loop中被调用后的时机,从而检测到catch的执行,通过测试。

而使用“神奇”一词则是因为 promsie 的链式调用中确实有很多默认的 handler 和值的隐含传递。

阅读全文
标签:promise目录