关于promise面试题

关于promise的面试题

1

今天面试被问到了两个关于promise的面试题,不外乎就是执行顺序相关的问题,话不多说,先上代码!
在这里插入图片描述

这道题相信大家都明白了,一道烂大街的题,输出结果不外乎就是Promise1,1,Promise2,setTimeout
大致说一下原理,首先先了解一句话:同步优先,异步靠边,setTimeout是常用来模仿异步处理的一个方式,当你看到setTimeout的话那就肯定是异步操作,先让他往后稍一稍,接下来就是promise,promise内部是同步的,所以说先打印出Promise1,接下来就是then方法里的console,因为then是异步的,所以也先往后稍一稍,再往下就是最外部的console.log(1)了,这肯定是同步的,所以接下来打印的是1,然后就是这个setTimeout和then里面的先后顺序了,then函数在promise是下一轮执行的,所以接下来打印的就是Promise2,最后输出的是setTimeout

2

第二道题,我问了很多人,都答得和我一样,都答错了,不知道你们有没有中招。话不多说,上代码。
在这里插入图片描述
一开始我想到的就是1,2,3,4,面试官也没说什么,就继续接下来的问题了,其实我知道肯定答错了,所以回来看了一下文档,正确结果是1,2,4,3,原因很简单,当Promise直接resolve的时候,表示着在当前这一轮执行,这里就可以看作成一个同步的事件,所以打印的就是1,2,4,3。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值