【问题标题】:Value of the variable becomes empty when accessed outside the function in node js在节点js中的函数外部访问时变量的值变为空
【发布时间】:2013-07-31 16:59:23
【问题描述】:

我有以下代码:

for(workload.elements 中的变量索引) { var arr = []; var 资源标识符 = {}; 变量元素信息 = {}; var metadataModified = {};

        elementinfo = workload.elements[index];


        arr[index] = workload.elements[index].uri;
        if(workload.elements[index].parameters.imageUri)
        {
            arr.push(workload.elements[index].parameters.imageUri);
        }
        resourceIdentifiers = arr.join(',');
        console.log('uri' + resourceIdentifiers);

        // connects with mysql and fetch data
        mysql.elementlevelpricing(resourceIdentifiers, function(result){

        elementlevelpricingSummary = JSON.stringify(result,null,2);
        console.log('resultin' + elementlevelpricingSummary);

        });

        console.log('resultout' + JSON.stringify(elementlevelpricingSummary,null,2))

    }

当在被调用函数mysql.elementlevelpricing()之外访问时,变量elementlevelpricingSummary的值变为空{}。

【问题讨论】:

  • 你是在函数外设置变量 elementlevelpricingSummary 在执行之前吗?

标签: javascript json node.js function coding-style


【解决方案1】:

传递给mysql.elementlevelpricing 的函数是一个异步回调,所以它实际上是在它下面的console.log 行之后运行的。你会想要在回调本身中做任何你需要数据的事情。

【讨论】:

  • 我认为 node js 与 C# 类似
  • 如何从上面的异步调用中构建一个数组
  • @Prem 我不太确定你在问什么。您应该就此提出另一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 2014-01-29
相关资源
最近更新 更多