Суть в чем, после удаления объекта из массива требуется перезаписать файл. Я даже делаю это с callback и оно выводит что файл записан, но на деле нет. До этого с этим проблем не возникало. async function SuccessfulPayment(){ var BillInfoFile = JSON.parse(fs.readFileSync(path.join(__dirname, 'AllBillId.json'))) BillInfoFile.Bill.forEach(element => { if(element.BillId.toString() != ''){ qiwiApi.getBillInfo(element.BillId.toString()).then( data => { if(data.status.value === 'PAID'){ console.log(data.status.value) bot.telegram.sendMessage(element.IdUser.toString(), `Успешная оплата!`) let index = BillInfoFile.Bill.indexOf(element) console.log(BillInfoFile) BillInfoFile.Bill.splice(index, 1) console.log(index) console.log(BillInfoFile) let NewBill = BillInfoFile fs.writeFile(path.join(__dirname + 'AllBillId.json'), JSON.stringify(BillInfoFile), 'utf-8', (err =>{ if(err){ throw err } else{ console.log('Confirm') } })) } }); } }); } JavaScript async function SuccessfulPayment(){ var BillInfoFile = JSON.parse(fs.readFileSync(path.join(__dirname, 'AllBillId.json'))) BillInfoFile.Bill.forEach(element => { if(element.BillId.toString() != ''){ qiwiApi.getBillInfo(element.BillId.toString()).then( data => { if(data.status.value === 'PAID'){ console.log(data.status.value) bot.telegram.sendMessage(element.IdUser.toString(), `Успешная оплата!`) let index = BillInfoFile.Bill.indexOf(element) console.log(BillInfoFile) BillInfoFile.Bill.splice(index, 1) console.log(index) console.log(BillInfoFile) let NewBill = BillInfoFile fs.writeFile(path.join(__dirname + 'AllBillId.json'), JSON.stringify(BillInfoFile), 'utf-8', (err =>{ if(err){ throw err } else{ console.log('Confirm') } })) } }); } }); }
желательно бы прикреплять output своей консоли, но попробуй заменить на: fs.writeFileSync(file, data[, options])
gcc_machine, пытался и синхронно, безуспешно. Есть вариант что как-то мешает то, что это происходит в методе от **** api
Сделай код асинхронным, и перед записью данных выведи то что записываешь в консоль, само собой в формате json
Строка 15 fs.writeFile(__dirname + '/AllBillId.json', JSON.stringify(BillInfoFile), 'utf-8', (err =>{) Попробуй поставить / path.join() на сколько Я вижу не работает в объединении пути в твоём виде. Я так понимаю должно быть как то так path.join(__dirname,'AllBillId.json') Чтобы path.join работал в твоём случае. А в итоге: fs.writeFile(path.join(__dirname,'AllBillId.json'), JSON.stringify(BillInfoFile), 'utf-8', (err =>{)