多次调用异步函数

时间:2015-05-19 21:49:11

标签: node.js

如果我多次调用异步函数来改变内存状态,我需要锁定。例如如果我在我的代码中多次调用fs.writeFile,如

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

我如何确保没有同步问题?有没有锁定机制?

1 个答案:

答案 0 :(得分:1)

在Javascript中,此类问题没有任何“锁定”机制。相反,您将响应异步操作的完成,并将之后要执行的操作放入该回调中。

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

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

尽管如此,我认为这是一个简化的例子,因为没有理由将一个数据作为文件写入,然后立即将不同的数据写入整个文件。因此,通常必须有一些干预代码。