- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 nodeJS/Javascript 的异步特性(Python 背景)相对较新,并试图弄清楚如何单步执行嵌套的 JSON 对象,使用 asnyc.js 提取它的值。
我遇到了这个片段,How to navigate in nested JSON .
function recursiveGetProperty(obj, lookup, callback) {
for (property in obj) {
if (property == lookup) {
callback(obj[property]);
} else if (obj[property] instanceof Object) {
recursiveGetProperty(obj[property], lookup, callback);
}
}
}
这与示例对象 foo 配合得很好。
var foo = {
'key_1' : 'val1',
'key_2': {
'key_3': 'val3',
'key_4': 'val4'
}
}
recursiveGetProperty(foo, 'key_1', function(obj) {
console.log(obj);
});
返回“val1”
recursiveGetProperty(foo, 'key_3', function(obj) {
console.log(obj);
});
返回“val3”
这正是我所需要的,但是当我通过迭代为其提供关键值时:
var keys = ['val1', 'val3'];
for (var keys in keys) {
recursiveGetProperty(foo, keys, function(obj) {
console.log(obj);
});
}
没有任何内容记录到控制台。所以我写了一个日志函数:
function log(obj) {
console.log(obj);
}
并尝试过:
for (var key in keys) {
recursiveGetProperty(foo, keys, log(obj));
}
但我得到 ReferenceError: obj is not Defined。
有人告诉我在 for 循环内执行回调不是一个好主意,我不太清楚为什么,所以我研究了 async.js。这似乎是我想要的正确解决方案,但我不知道如何去做。
使用 async.js,我想构建一系列 recursiveGetProperty 函数,将它们存储在数组中,然后异步执行这些调用,但我对如何解决该问题感到困惑。
我最终想要的是这样的:
async.each(['key_1', 'key_2', 'key_3'], recursiveGet(key) {
doSomethingWithData();
}, function(err) {
doSomethingWhenDone();
});
这将在 ExpressJS 服务器上用于解析 JSON 并随后对其执行某些操作。
任何帮助或建议将不胜感激。
最佳答案
这段代码有错误
var keys = ['val1', 'val3'];
for (var keys in keys) {
recursiveGetProperty(foo, keys, function(obj) {
console.log(obj);
});
}
所以代码应该是
var keys = ['key_1', 'key_2'];
for (var key in keys) {
recursiveGetProperty(foo, keys[key], function(obj) {
console.log(obj);
});
}
关于javascript - 如何使用 asnyc.js 迭代嵌套 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22543097/
我的问题由两部分组成。 在我的网页中,我正在使用 ajax post 调用动态创建一些 div,以从数据库获取一些信息。然后我创建我的 div。我的结构如下。
在我的 Android 应用程序中,我使用 BehaviourSubject 从数据提供者“获取数据”到我的 UI 和其他需要数据的服务。举个例子,我们假设这些是给我们用户的消息。 每当触发数据(例如
我遇到了异步方法的问题,该方法打印并返回所有 vidDuration 值,然后为每个 videoId 放置 viewCount 值,但 vidDuration 仅重复收到的最后一个值并将其分配给所有
我对 nodeJS/Javascript 的异步特性(Python 背景)相对较新,并试图弄清楚如何单步执行嵌套的 JSON 对象,使用 asnyc.js 提取它的值。 我遇到了这个片段,How to
我用了aioredis用于编写将在特定 channel 上监听并以异步方式运行某些命令的异步服务。 基本上我从examples page中获取了一个代码编写一个小的测试应用程序并删除不必要的部分: i
下面的js脚本连接SSH和mongodb,在数据库中创建一个文档。 (async function run() { try { //connect to SSH server
问题是我尝试多次运行 RunPrivateMethod(),但我遇到了阻塞问题,或者在我使用 async/await 时直接无法正常工作。与其在这里分享每一次尝试,我只是把我当前的版本。 在 RunP
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试通过 Azure Blob Storage .NET api 上传如此多的文件并使用当前最新版本 4.0.1。在 ASP.NET MVC 应用程序中,我使用异步操作方法通过等待 blobFi
目前,我有一个使用FETCH请求接收数据的异步函数,一旦接收到数据,我希望它立即运行CheckVals。唯一的问题是,在我的异步函数完成之前,check Vals正在运行。如何让CheckVals在运
[已编辑]:我已经用 promise 方式更改了我的代码。 我正在写 React with this starter 由 facebook 创建,我是测试方面的新手。 现在我有一个关于图像的组件,它有
我是一名优秀的程序员,十分优秀!