繁体   English   中英

在 JS 中将值从一个函数传递到另一个函数

[英]Passing values from a function to another in JS

这是我的代码示例。 当我输入 div 时,我想更改函数中的值。 到目前为止,如果我输入我的 div,我会得到文本输出,但我在 Example 函数中的值不会改变。

所以基本上我的问题是我不明白如何在函数更改为另一个函数后从函数返回值。我对 JS 很陌生,无法真正弄清楚出了什么问题。

function Example(){
  var value=0;

    MYDIV.addEventListener("mouseenter",function (){
    
        value=10;
        console.log("Entered the Div")
        return value
    })

console.log(value)
  }

简单的答案是“你不能”。

在调用MYDIV.addEventListener您将其中的function作为参数传递。 不是在调用这个未命名的函数,而是要求MYDIV.addEventListener在将来的某个时候为您调用它。

在这种特殊情况下,您的未命名函数将在Example执行结束后被调用。 如果你想等待这一刻,你可以尝试使用Promise

function example() {
  new Promise(resolve => {
    function handle() {
      myDiv.removeEventListener('mouseenter', handle)
      console.log("Entered the Div")
      resolve(10)
    }

    myDiv.addEventListener('mouseenter')
  }).then(function (value) {
    console.log(value)
  })
}

或者甚至将它包装到async / await

async function example() {
  const value = await new Promise(resolve => {
    function handle() {
      myDiv.removeEventListener('mouseenter', handle)
      console.log("Entered the Div")
      resolve(10)
    }

    myDiv.addEventListener('mouseenter')
  })

  console.log(value)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM