今天面试了几个人,这个题没有一个会的
console.log(1)
await delay(3000)
console.log(2)
这段程序先输出1,等待3秒,在输出2
实现delay
await delay(3000)
console.log(2)
这段程序先输出1,等待3秒,在输出2
实现delay
全部评论
楼上这些人真的能找到工作吗……… 这道题是让你实现 delay,不是问你这段代码什么意思……
不就一行代码吗
const delay=time => new Promise(resolve=>setTimeout(resolve, time))
我学c++的,我只会for循环3000次
promise内部放一个settimeout
用了await,不放在async函数里面还是不严谨啊兄弟
离谱,没学过js都能看出来吧
await会在当前代码块中:将await同一行的代码同步执行(即使await后面跟了异步代码),而await下一行的代码作为微任务推进任务队列。。
所以await new Promise(res=>setTimeout(
()=>{res()}
,3000))
将延时器这个异步代码同步化,导致程序阻塞3s,而console.log(2)则是被推入任务队列,3秒后执行了。是这么理解的嘛?
会报错,因为await只能在async函数里用
看起来好几个评论的朋友都没有弄懂题意啊~当然面试的人也有没有弄懂题意的
(async () => {
function delay(time) {
return new Promise((reslove) => {
setTimeout(() => {
reslove();
}, time);
});
}
console.log(1);
await delay(3000);
console.log(2);
})();
function delay(time) {
const start = Date.now();
while (Date.now() - start < time) {
}
}
想知道这个题针对测试难不难
扯淡,谁不会
面试的啥水平啊
😂
Promise包一个setTimeout,我后端都知道
大神们,我不配跟你们带在一栋楼里
死循环加时间戳
这吗?招前端?这都不会?
相关推荐
07-08 01:01
重庆大学 嵌入式软件开发 点赞 评论 收藏
分享