首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法返回JavaScript嵌套回调函数内部函数返回值

无法返回JavaScript嵌套回调函数内部函数返回值
EN

Stack Overflow用户
提问于 2018-07-02 02:26:12
回答 1查看 128关注 0票数 -2

我仍然在尝试从嵌套回调函数中返回返回值,但是我已经没有想法了。

代码如下:

代码语言:javascript
复制
function addListener() {
  var imgs = document.getElementsByClassName('img');
  var ids = document.getElementsByClassName('item');
  for (let i = 0; i < imgs.length; i++) {
    let img = imgs[i];
    img.addEventListener('click', function() {
      var card_1 = function getId() {
        var Id = ids[i].id;
        return Id;
      };
      img.style.opacity = "1.0";
      window.setTimeout(function() {
        img.style.opacity = "0.0"
      }, 2000)
    });
  }
}

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-07-02 05:19:02

很可能你需要使用回调,你不能从这个函数返回值,因为这个函数所做的工作是异步的:

代码语言:javascript
复制
function addListener(cb) {
  var imgs = document.getElementsByClassName('img');
  var ids = document.getElementsByClassName('item');
  for (let i = 0; i < imgs.length; i++) {
    let img = imgs[i];
    var Id = ids[i].id;
    img.addEventListener('click', function() {
        cb(null,Id);         // use an error-first callback
      img.style.opacity = "1.0";
      window.setTimeout(function() {
        img.style.opacity = "0.0"
      }, 2000)
    });
  }
}

如下所示调用函数:

代码语言:javascript
复制
addListener(function(err,id){

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51125905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档