В следующей функции initiateWriteStream
он пытается записать все токены внутри массива с именем tokensToStore
в файл. Здесь используется общий массив array для записи
initiateWriteStream() {
const writeStreamNotifier = new EventEmitter();
writeStreamNotifier.on("start", () => {
let proceedWithNextWrite = true;
let tokensToStore = this.tokensToStore;
const stream = fs.createWriteStream("my-file.token", {
flags: "a"
});
function store() {
do {
const token = tokensToStore.pop() || "";
if (token && token.trim().length > 0) {
proceedWithNextWrite = stream.write(`${token.trim()}${os.EOL}`);
}
} while (tokensToStore.length > 0 && proceedWithNextWrite);
if (tokensToStore.length > 0) {
stream.once("drain", store);
}
}
store();
this.tokensToStore = tokensToStore;
stream.end();
writeStreamNotifier.emit("end");
});
return writeStreamNotifier;
}
const writeStream = wtm.initiateWriteStream();
writeStream.emit("start");
Я наблюдаю, что некоторые из более мелких токенов, таких как Insurance
, не записываются в файл. Что я делаю неправильно? Я не могу понять причину этого.
Непосредственно перед вызовом store
в al oop, если я сделаю require("fs").writeFileSync("tp2.json", JSON.stringify(tokensToStore));
, я могу увидеть все токены, но my-file.token
не имеет всех токенов. В чем может быть причина этого?