我连接到websocket,每次我收到消息我将其内容保存到json文件。如果我在同一秒内收到两条或更多消息,它就不能正确保存它。我怎么能阻止它?每次我得到我正在使用的消息:
fs.readFile(bought_path,'utf-8',(err,data) =>{ ...
//do something
读取json文件,
fs.writeFile(bought_path, JSON.stringify(kupljeni_itemi) , 'utf-8');
保存已编辑的json文件。
答案 0 :(得分:1)
防范的一种方法是建立一个简单的锁定机制:
let isLocked = false; // declare it in an upper scope.
if (!isLocked) { // check if it is not locked by other socket call.
isLocked = true; // set the lock before writing the content
fs.writeFile(file, json, (err) => {
isLocked = false; // unlock when you get the response
})
}
答案 1 :(得分:-1)
你可以使用同步读/写功能 -
readFileSync
和writeFileSync