最熟悉的地方,往往会忽略一些细节。就比如 setTimeout 函数,做前端开发的同学都会很熟悉这个函数,经常使用这个函数,但是知道这个函数还有第三个参数的小伙伴可能就不多了。起码我在阅读阮老师的 es6 之前是不知道的。阮老师的es6的primise章节里有这样一段代码。

function timeout(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms, 'done');
  });
}

timeout(100).then((value) => {
  console.log(value);
});

看到那个 done 参数,我有点蒙。于是我在chrome 的console 里执行了一下这个代码,居然打印了 done。这时大概明白是怎么回事了,想问问为什么。w3school里也没有介绍这个第三个可选的参数。搜了 setTImeout 参数,才有了https://www.cnblogs.com/leaf930814/p/6828588.html 介绍这个方法细节的。

我在这里笔记一下,加深印象。