function populateWithKeywordsAndIds(list) {
var newList = [];
for (let i = 0; i < list.length; i++) {
//some computation goes in here that i think is not relevant
newList[x] = y;
}
fs.writeFileSync('./firstJSONWritten.js', newList);
console.log(newList);
return newList;
}
populateWithKeywordsAndIds(someList);
运行之后,firstJSONWritten.js是一个空文件。 对promulateWithKeywordsAndIds(someList)的调用发生在promise的.then()方法的主体中。
答案 0 :(得分:0)
writeFile
/writeFileSync
未定义为接受标准数组作为数据。您可以传递一个字符串,Buffer
或Uint8Array
,但不仅仅是数组。所以你得到奇怪的结果并不奇怪。 (可能试图将该数组转换为缓冲区,但如果是这样,那么它是未定义的行为,谁知道它是如何解释内容的......)
旁注:
对promulateWithKeywordsAndIds(someList)的调用发生在promise的.then()方法的主体中。
然后没有理由使用writeFile
的同步版本;你已经进行异步处理。请改用writeFile
,以避免不必要地占用等待I / O的JavaScript线程。