我一直在研究一个问题,我似乎无法完全了解原点。 我的应用程序的工作流程如下:
Promise.all(array.map(individualRequest))
一切似乎都在无缝地完成第四步。在第3步中,我正确地修改了对象,但是当它返回到main(每个步骤都有一个专用模块)时,第4步写入:[null,null,null ...](原点中的每个项目为null)数组)在JSON文件中。
我不确定如何将其放入代码中并使其简单(不发布整个原始代码),但您可以在此处找到完整版本: https://github.com/Ardzii/mongoNode
我知道项目信息正在被正确转换,因为我在转换模块中留下了一个控制台日志以进行验证,它给了我正确的信息:
[ADDED]: { “名称”: “DASHEUR”, “一个”:[ “151.400000”, “1”, “1.000”]中, “b”:[ “148.500000”, “1”, “1.000”], “C”:[ “151.577960”, “0.01000000”], “v”:[ “1861.79012466”, “3063.32653118”], “p”:[ “151.527639”, “150.811326”], “吨”:[688,1205], “l” 的:[ “146.599930”, “146.599930”], “H”:[ “156.118780”, “156.118780”]中, “○”: “148.000000”}
我不知道为什么,当它回到主(app.js)时:
async function worker() {
var tickerList = await getTickerList();
var tickerInfo = await getTickerInfo(tickerList);
var filename = `./modules/batches/${new Date().toISOString()}batch.json`;
fs.writeFile(filename, JSON.stringify(tickerInfo), (err) => {
if (err) throw err;
console.log("[SUCCESS]: All tickers processed successfully!");
});
}
worker();
我得到了一个糟糕的
存储在JSON文件中的[NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL]
...(再次,对于数组中的每个项目,这是一个'null')
提前感谢您的帮助,我希望我能够保持清晰简单!
答案 0 :(得分:3)
modules/transformTicker.js, line 22
function transformTicker(ticker) {
var result = {};
Object.keys(ticker).forEach((k) => {
// Object.keys(ticker[pair]).forEach((k) => {
// console.log(k);
result= {
name: k,
a: ticker[k].a,
b: ticker[k].b,
c: ticker[k].c,
v: ticker[k].v,
p: ticker[k].p,
t: ticker[k].t,
l: ticker[k].l,
h: ticker[k].h,
o: ticker[k].o,
}
console.log(`[ADDED]: ${JSON.stringify(result)}`);
return result;
// });
});
}
你的回归'语句在forEach函数范围内,而它应该在for-each循环之后。
更正版本:
function transformTicker(ticker) {
var result = {};
Object.keys(ticker).forEach((k) => {
// Object.keys(ticker[pair]).forEach((k) => {
// console.log(k);
result= {
name: k,
a: ticker[k].a,
b: ticker[k].b,
c: ticker[k].c,
v: ticker[k].v,
p: ticker[k].p,
t: ticker[k].t,
l: ticker[k].l,
h: ticker[k].h,
o: ticker[k].o,
}
console.log(`[ADDED]: ${JSON.stringify(result)}`);
// });
});
return result;
}