以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 小测验
36. Promise.prototype.finally()
代码会输出以下内容:
1
error
undefined
2
解释:
Promise.resolve(1)
返回一个立即 resolved 的 Promise,值为 1。finally
块不会改变 Promise 的结果值,但它会在 Promise 完成时执行给定的函数。在这里,finally
块中的函数会输出 1,并且返回一个 rejected 的 Promise,值为'error'
。catch
块会捕捉到前一个 rejected 的 Promise,输出'error'
并且抛出一个新的字符串'error2'
。finally
块中的函数在catch
块中的函数抛出异常后执行,这里会输出undefined
,因为 catch 块中的函数没有返回值。在这个finally
块中,我们在一个 resolved 的 Promise 的 then 方法中用console.log
输出 2。then
块输出 resolved 状态的 Promise 的值,也就是 2。- 后面的
catch
块没有执行,因为前一个then
块已经处理了 Promise 的 resolved 状态。