为了账号安全,请及时绑定邮箱和手机立即绑定

关于setTimeout 与 Promise 的疑惑

关于setTimeout 与 Promise 的疑惑

杨魅力 2018-11-29 22:18:44
对于 setTimeout(resolve('World'), ms); 与 setTimeout(resolve, ms, 'World'); 有何不同之处表示不明白。function timeout(ms = 100) {  /*1. 为何这种写法,立即返回数据而不是等到过了 ms 后才返回*/  // return new Promise((resolve, reject) => {  //   setTimeout(resolve('World'), ms);  // });  /*2. 为何这种写法,等到过了 ms 后才返回*/  return new Promise((resolve, reject) => {    setTimeout(resolve, ms, 'World');  });}timeout(1000)  .then(value => {    console.log(`Hello, ${value}`);  })  .catch(err => {    console.error(err);  });
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

就是func()和func的区别,setTimeout的第一个参数是func,如果用func()相当于其返回值为第一个参数。
举个例子:

function test(){

    console.log('this is test!');

    return function () {

        console.log('this is return!');

    }

}


setTimeout(test(), 1000);

大致相当于:

console.log('this is test!');

setTimeout(function () {

        console.log('this is return!');

    }, 1000);


查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信