如果我多次调用异步函数来改变内存状态,我需要锁定。例如如果我在我的代码中多次调用fs.writeFile,如
fs.writeFile('test.txt', 'data', function(err){});
fs.writeFile('test.txt', 'data', function(err){});
我如何确保没有同步问题?有没有锁定机制?
答案 0 :(得分:1)
在Javascript中,此类问题没有任何“锁定”机制。相反,您将响应异步操作的完成,并将之后要执行的操作放入该回调中。
如果你想确保这两个命令以正确的顺序发生,那么你可以而且应该手动对它们进行排序:
fs.writeFile('test.txt', 'data1', function(err){
// presumably some other code here
fs.writeFile('test.txt', 'data2', function(err){});
});
尽管如此,我认为这是一个简化的例子,因为没有理由将一个数据作为文件写入,然后立即将不同的数据写入整个文件。因此,通常必须有一些干预代码。