在javascript中,我正在做这样的事情

first_function: function() {
              var timeout = setTimeout(function() {
              // doing something
              }, 300000);
           },

在另一个函数中,在做了一些重要的事情之后,我必须访问 timeout 变量并清除超时。
 second_function : function () {
           // after opening the hardware, have to cleartimeout from first_function
            hardware.open().then(function() {
            clearTimeout(timeout);
            }
           // calling first_function only after hardware open
            this.first_function();

但是,我得到 undefined variable timeout ,我该如何解决这个问题?

在解决 this.first_function() 的 promise 之前,我无法调用 then()

最佳答案

您可以将 timeout 变量存储为另一个属性,例如this.timeout :

first_function: function() {
  this.timeout = setTimeout(function() {
    // doing something
  }, 300000);
},


second_function: function() {
  // after opening the hardware, have to cleartimeout from first_function
  hardware.open().then(() => {
    clearTimeout(this.timeout);

    // calling first_function only after hardware open
    this.first_function();
  })
}

关于javascript - 在函数javascript中访问另一个函数的超时变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49322160/

10-11 23:30