タイトルに申し訳ありませんが、私は具体的にしようとしていましたが、ちょっと混乱します。実際にコードの一部は、私の問題が何であるかをお見せするためのより良い方法をする必要があります:setIntervalをループするときに古いデータを保持せずに配列にファイルをプッシュする方法はありますか?
var i = 0
var jsonArray = []
var startTime = new Date().getTime()
var writeFile = setInterval(function() {
var currentTime = new Date().getTime()
var stopTime = 31 * 1000
var executeScript = setInterval(function() {
// the script will stop after some time
if (currentTime - startTime > stopTime) { // time in ms: 60 * 60 * 1000 = 1 hour
process.exit()
}
// making request and fetching data
http.get(request, function (response) {
response.pipe(bl(function (err, data) {
if (err) return console.error(err)
response.setEncoding('utf8')
parseString(data, function (err, result) {
result = result.SoccerFeed.SoccerDocument[0].MatchData[0].TeamData
// creating object and filling it with received data
result = createJsObject(result)
// converting object in json format
var jsonObject = JSON.stringify(result, null, 4)
jsonArray.push(jsonObject)
// copying json into a new file without overwriting previous written data
})
}))
}).on('error', console.error)
}, 1 * 1000) // interval in ms: 90 * 1000 = 90 seconds/1 min 30
fs.writeFile('API - Opta - ' + moment().format('YYYY - DD.MM (HH:mm:ss)') + '.txt', jsonArray, function(err) {
if (err) throw err
})
jsonArray = []
i++
}, 10 * 1000)
問題は、私は、ファイルに押してるのアレイは、私が掃除しても、古いものからデータを保持していることですそれはjsonArray = []である。私は何か間違っていることを知っているが、私は何が分からない。それは役立ちますが、この行にこの
var writeFile = setInterval(function() {
後
var jsonArray = []
を配置し、あなたがjsonArrayをクリアする必要はありません場合は、あなたの助けを事前に
おかげ
前回保存したファイルのデータを含まない配列でx分ごとに新しいファイルを作成したいだけです。このコードでは、ファイルはx分ごとに配列を保存しますが、すべての次のファイルは古い配列/オブジェクトのデータを保持します – Psychologist