搜索

首页  >  问答  >  正文

javascript - 请问下面这个promise为什么会返回这个值?

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

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

请问为什么会返回'done',setTimeout不是只有两个参数?为什么timeout执行后 resolve会拿到'done'

漂亮男人漂亮男人2752 天前581

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-05-16 13:32:47

    https://developer.mozilla.org...

    向延迟函数传递额外参数的功能

    回复
    0
  • 某草草

    某草草2017-05-16 13:32:47

    setTimeout 第一个参数是回掉函数,第二个是延迟回掉的时间,第三个参数之后就是向回掉函数的参数。你的这种写法就相当于

    setTimeout(function () {
        resolve('done')
    }, ms)

    回复
    0
  • 取消回复