【发布时间】:2019-10-09 16:22:09
【问题描述】:
由于其同步特性,我的 Javascript 代码遇到了一个非常烦人的问题,简而言之,问题是我需要将大量数据转储到数组中。
然后将该数组直接写入 JSON 文件。
function main(callback) {
myarrary = []
//run some SQL query via stored procedure
for (result in query) {
myarray.push({
//my data is entered here
})
}
let data = JSON.stringify({myarray: somedata}, null, 4)
fs.writeFileSync('testingjson.json', data)
callback();
}
main(another_function)
我的问题是数据转储和回调会立即执行,因此没有数据传输到文件中,并且“another_function”依赖于存在的数据,因此这也不起作用。
因此我需要转储等待循环完成附加myarray
我也尝试将转储和回调输入到我的 for 循环中,但是它们在第一次迭代时执行。
感谢任何帮助!
【问题讨论】:
-
如果你需要回调,你应该不在sync中写入文件吗?
-
@Nishant 你能详细说明一下吗?
-
你在运行
node吗? -
试试
fs.writeFile(filename, data[, options], callback)。 -
@Nishant ,如果文件在循环内,则可以将数据写入文件,但这不是解决方案,因为文件打开了数千次并减慢了脚本的速度。我将研究
async解决方案
标签: javascript node.js callback