setTimeout立即启动功能,而不是等待

setTimeout firing function straight away and not waiting

本文关键字:等待 功能 启动 setTimeout      更新时间:2023-09-26

我对setTimeout的使用似乎是直接执行的,而不是等待5秒:

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'
        })
      }
    }
  }

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

您的函数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'
        })
      }
    }
  }