使用setTimeout在Javascript中提取结果时出错

问题描述 投票:-1回答:1

我的脚本使用setTimeout函数时出错

例如,我的脚本就像

function student() {
    var obj = {
      name: "Mary", 
    number: +44 26281001
    }
 return obj  
}

我想延迟执行该函数4秒钟,然后保存到变量x。我写了以下函数:

var x = setTimeout(student(), 4000);

它返回一个数字1280,然后4秒后返回错误:

Uncaught SyntaxError:意外的标识符

什么是错误,我该如何解决?非常感谢您的帮助。

javascript settimeout
1个回答
5
投票

你的电话号码应该是这样的

number: '+44 26281001'
// or
number: "+44 26281001"

所以number成为一个字符串。并将函数本身作为参数传递,而不是调用它并传递student()的结果作为参数。

var x = setTimeout(student, 4000);

顺便说一句,如果你想分配/记录学生对象,那么你需要像这样调用它:

setTimeout(()=>console.log(student()), 4000);

编辑

function student() {
  return {
    name: 'Mary',
    number: '+44 26281001'
  }
}

var studentVar;

var x = setTimeout(function() {
  studentVar = student();
}, 4000);
console.log(x);
console.log(studentVar); // Logs 'undefined'

(function logXAfter5Seconds() {
  setTimeout(() => {
    console.log(x);
    console.log(studentVar); // Logs the student object after 5 seconds
  }, 5000);
})();
© www.soinside.com 2019 - 2024. All rights reserved.