多次调用asynchronous函数

如果我多次调用一个asynchronous函数,改变内存的状态,我将需要一个锁。 例如,如果我在我的代码中多次调用fs.writeFile

fs.writeFile('test.txt', 'data', function(err){}); fs.writeFile('test.txt', 'data', function(err){}); 

我将如何确保没有同步问题? 有没有locking机制?

在Javascript中,这种types的问题没有任何“locking”机制。 相反,您对asynchronous操作的完成做出了响应,并将您想要的操作放在该callback中。

如果你想确保这两个命令以正确的顺序发生,那么你可以并且应该手动sorting它们:

 fs.writeFile('test.txt', 'data1', function(err){ // presumably some other code here fs.writeFile('test.txt', 'data2', function(err){}); }); 

不过,我认为这是一个简化的例子,因为没有理由将一个数据写入一个文件,然后立即写入一个不同的数据作为整个文件。 所以通常必须有一些中介代码。