前端面试题之代码输出(六)
  FTKwE7sqlksi 2023年11月02日 113 0

接昨天代码输出题目,

前端面试题之代码输出

前端面试题之代码输出二

前端面试题之代码输出三

前端面试题之代码输出四

前端面试题之代码输出五

异步&事件循环
11.代码输出结果
Promise.resolve(1)
    .then(2)
    .then(Promise.resolve(3))
    .then(console.log)

输出结果如下:

1

代码执行顺序如下:

  1. .then.catch 的参数期望是函数,传入非函数则会发生值透传
  2. 第一个 then 和第二个 then 中传入的都不是函数,一个数字,一个对象,因此发生透传。将 resolvee(1) 的值直接传到最后的 then 里了。
12.代码输出结果
Promise.reject('err!!!')
    .then((res) => {
        console.log('success', res)
    }, (err) => {
        console.log('error', err)
    }).catch(err => {
        console.log('catch', err)
    })

输出结果如下:

error err!!!

代码执行顺序如下:

.then 函数中的两个参数:

  • 第一个参数是用来处理Promise成功的函数
  • 第二个则是处理失败的函数

也就是说 Promise.resolve('1') 的值会进入成功的函数,Promise.reject('2') 的值会进入失败的函数。

在这道题中,错误直接被then的第二个参数捕获了,所以就不会被 catch 捕获了


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
FTKwE7sqlksi