【问题标题】:Can I call this function in an arrow-function?我可以在箭头函数中调用这个函数吗?
【发布时间】:2020-06-24 14:05:56
【问题描述】:

我使用 spotify API 编程.. 错误是这 2 个函数,我不知道如何在这个箭头函数中调用“setVolume”函数。这是可能的还是代码错误?

我不知道更多。这是我的代码:

player.on('player_state_changed', state => {

   //... SOME CODE ...

   

   function setVolume(value) {
       player.setVolume(value).then(() => {
           console.log('Volume updated!');
       });
   }

});

(1) 在控制台中我试过这个:

setVolume(0.5)

(2) 在控制台中我尝试了这个:

player.on(setVolume(0.5))

~ 我收到​​了这个错误信息:“玩家未定义”

那么如何从控制台调用 setVolume 函数呢?

【问题讨论】:

  • 你可以在箭头函数中调用any函数吗?
  • settVolume 在该事件内部声明,在该块之外无法访问。在里面声明是没有意义的。它存在的目的是什么?
  • 您必须将所有这些设置为全局,或者在检查器中编辑代码,所有控制台代码的运行就像 ti 被添加到代码底部一样
  • 这能回答你的问题吗? How do JavaScript closures work?
  • 我不知道,我是箭头函数之类的新手

标签: javascript


【解决方案1】:

那么如何从控制台调用 setVolume 函数呢?

从根本上说,你不能,尤其是因为不只是其中之一。每次运行状态更改回调时,都会创建一个 setVolume 函数。这些函数中的每一个都是该状态更改回调的本地函数,并且无法在其外部访问。每次创建一个全局变量时,您都可以使用该函数的最新副本对其进行更新,但这可能不是一个好主意。出于某种原因,该函数可能是本地的。

【讨论】:

  • 好的,有道理。谢谢,我试试
猜你喜欢
  • 2017-11-30
  • 2018-12-31
  • 1970-01-01
  • 2019-08-12
  • 2017-09-21
  • 2015-07-30
相关资源
最近更新 更多