问题
上次被问到链式调用怎么实现, 而且需要中间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