一. 计数器的实现
思路
直接自增
解题方法
利用闭包的特性直接让n自增就好
实现
/**
* @param {number} n
* @return {Function} counter
*/
var createCounter = function(n) {
return function() {
return n ++;
};
};
/**
* const counter = createCounter(10)
* counter() // 10
* counter() // 11
* counter() // 12
*/
二. 睡眠函数的实现
思路
Promise + 定时器
解题方法
返回一个Promise对象,在其构造函数中利用定时器setTimeout延迟调用Promise中的resolve
实现
/**
* @param {number} millis
*/
async function sleep(millis) {
return new Promise(resolve => {
setTimeout(() => {
resolve();
}, millis);
});
}
/**
* let t = Date.now()
* sleep(100).then(() => console.log(Date.now() - t)) // 100
*/