javascript - 如何访问在 d3.json 请求之外声明的变量

标签 javascript json asynchronous d3.js scope

我有一个变量 Params 作为参数传递给 makePlot 函数。我想在 d3.json 请求中访问它,但它显示为未定义。见下文。

const makePlot = (Params) => {
  // Params defined here
  d3.json(`somedata.json`, (error, data) => {
  // Params not defined here
    data.forEach((d) => {
     d.Params.something = Number(d.Params.something);
     d.Params.somethingElse = Number(d.Params.somethingElse);
    }); 
};

有什么办法可以解决这个问题吗?

最佳答案

好吧,Params(没有任何前缀 d.)在您的内部函数中很容易获得。这称为 https://stackoverflow.com/a/111111/444255 ), 正常的 javascript 功能。

只需删除它之前的d.

d 是一个完全不同的变量,基本上是您正在迭代的 data 的第一级子元素。 (很可能是对象属性 resp. 数组成员)。

关于javascript - 如何访问在 d3.json 请求之外声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227226/

相关文章:

json - JQ如何将多个对象合二为一

node.js - 在 Node.js 7.6+ 中是否有任何可能的方法可以使用内置的等待而无需异步?

java - AsynchronousFileChannel 何时写入 "complete"?

javascript - 为什么 chrome 开发者工具不显示 WhatsApp 网络应用程序请求?

jquery - JSONP 的安全性

javascript - 创建一个要使用的 URL,而不是多个 URL

javascript - 使用 es6 创建嵌套对象

asynchronous - 从 Dart 中的构造函数调用异步方法

java - 使用 jquery ajax 调用托管 bean 方法并在 jquery 中取回结果

Javascript 闭包技术