前端面试题 一行代码实现sleep函数
踏入你的星河:
我有更简化的写法,主要是经常写些测试代码要用到sleep。
const sleep = (timestamp: number) => new Promise<void>(resolve => setTimeout(resolve, timestamp));
用箭头函数,还有隐藏不必要的参数都能做到,甚至你可以用函数式编程的思想去理解,每个函数都是一个单独的行为概念。
我取不来名字的:
这代码可以用来模拟异步调用的耗时吧,不会阻塞同步代码的吧
赫雅埃达:
这是异步函数,只不过是通过setTimeOut来延迟Promise实例.then里回调函数的执行时间,若有别的同步函数,依旧不会阻塞同步代码的执行,况且视频里还没写异步回调。
【回复】简单来说就是阻塞不了同步代码,但写在回调里的异步就可以。
小麦_加柯樂:
遇到这种面试题,就偏偏写好几行,这种一行的面试题在js里真无聊,人家Python能一行是因为确实存在一些神奇的语法支持的,考的是语法熟练度,js根本没有什么特殊语法能完美支持一行代码的
Human_purge:
function sleep(delay: number) {
return new Promise((resolve) => setTimeout(resolve, delay));
}
这样就行了,使用的时候,直接await sleep(200)就行了,这样就会阻塞同步代码的了
原理 程序员 教程 前端 JavaScript Vue Web前端 是老师,也是UP主! 万物研究所·第九期 1分钟学个知识点