setTimeout直接触发功能而不是等待

时间:2016-08-08 02:23:09

标签: javascript

我没有等待5秒钟,而是使用setTimeout似乎正在立即执行:

window.setTimout(getNegativeErrs(errors), 5000);

  function getNegativeErrs(ers) {
    for( i in errors ) {
      var errobj = getByValue(dataLayer, errors[i]);
      if(!errobj) {
        dataLayer.push({
          'event': 'negative_errors',
          'unseen': errors[i],
          'module': 'registration'
        })
      }
    }
  }

传递的函数必须是特定格式吗?我真的不知道在这里编辑什么或从哪里开始寻找?

1 个答案:

答案 0 :(得分:2)

您的函数getNegativeErrs()正在执行,并使用其返回值作为回调。

正确的方式:

window.setTimeout(function() {
    getNegativeErrs(errors)
    }, 5000);

  function getNegativeErrs(ers) {
    for( i in errors ) {
      var errobj = getByValue(dataLayer, errors[i]);
      if(!errobj) {
        dataLayer.push({
          'event': 'negative_errors',
          'unseen': errors[i],
          'module': 'registration'
        })
      }
    }
  }