ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何覆盖javascript变量?

2019-08-31 04:35:18  阅读:165  来源: 互联网

标签:javascript variables global-variables express local-variables


我正在开发一个Express.io迷你项目,我仍然坚持这个变量覆盖问题.

这是我的代码:

get_time_offset = function(timezone_id){
   Timezone.findById(timezone_id, function(err, doc){
        if(err) {
            console.log(err);
        } else {
            console.log(doc.offset);
        }
   });
}

这个代码块可以通过console.log显示doc.offset的值而没有任何问题,我想让doc.offset在Timezone Object之外可用.这是我到目前为止所得到的:

get_time_offset = function(timezone_id){
    var offset;
    Timezone.findById(timezone_id, function(err, doc){
       if(err) {
            console.log(err);
       } else {
          offset = doc.offset;
       }
    });
    console.log(offset);
}

它说“偏移是未定义的”,我似乎找不到任何其他方法来解决这个问题.

解决方法:

我想把你的初始声明改为……

var offset = {};

…或者,您的console.log正在函数完成之前执行.通过在函数内添加日志进行简单检查…

    } else {
      offset = doc.offset;
      console.log('from inside ... ', offset);
    }
   });
  }
console.log('from outside ... ', offset);

…并查看“外部”是否先发射.

编辑:

如果“从外部”首先运行,请使用初始函数调用的后续代码.

get_time_offset = function(timezone_id){
  var offset;

  function processResult(val) {
    console.log(val);
  }

  Timezone.findById(timezone_id, function(err, doc){
    if(err) {
      console.log(err);
    } else {
      offset = doc.offset;
    }
    processResult(offset);
  });
}

标签:javascript,variables,global-variables,express,local-variables
来源: https://codeday.me/bug/20190831/1772986.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有