是否会在“try”块中提前返回来调用“finally”块?

问题描述 投票:0回答:1

我正在 Docker 容器中运行自动化测试,并在此环境中使用浏览器。我担心在下面的场景中浏览器是否正确关闭。我的代码包含一个带有早期返回语句的 try 块。我的问题是:在 JavaScript 中,如果我在 try 块中执行提前返回,finally 块是否仍会被触发?我想确保在我的基于 Docker 的测试环境中正确关闭浏览器。

try {
  await importWallet(params.seedPhrase, page, extensionId)
  await addNetwork({networkName: 'BTC', page, extensionId})
  await connectWallet(context, page)
  return await sendToken({page, params})
}
finally {
  await context.close()
  console.log('🌂 Closing browser')
}

我运行了测试,但无法验证它,因为它在 Docker 容器中运行。

javascript
1个回答
0
投票

try 语句定义了要运行(尝试)的代码块。

catch 语句定义了一个代码块来处理任何错误。

finally 语句定义了一个无论结果如何都会运行的代码块。

throw 语句定义自定义错误。

因此,对于您的问题,当您运行错误处理时,Finally 语句肯定会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.