问题
上次被问到链式调用怎么实现, 而且需要中间seelp停顿n秒,再继续往下执行;
链式调用思路是返回this, seelp的思路是利用js单线程while阻塞; (利用for等也是一样的)
简单示例
let chain = {
log(...args){
console.log(args.toString())
return this
},
// 单位 ms
sleep(delay){
let start = Date.now()
while(+new Date() < start + delay){}
// 或 for(;+new Date() < start + delay;){}
return this
}
}
chain.log('start').sleep(2000).log('2s after').log('continue').sleep(5000).log('5s after')
// start
// 2s after
// continue
// 5s after
本文介绍了一种在JavaScript中实现链式调用的方法,并通过单线程特性实现中间sleep停顿。通过返回this来支持链式调用,利用while循环阻塞达到指定延迟。
244

被折叠的 条评论
为什么被折叠?



