链式调用

问题

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

你可能感兴趣的:(整理)