node.js - 多次调用异步函数

标签 node.js

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

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

如何确保不存在同步问题?有没有锁定机制?

最佳答案

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

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

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

不过,我假设这是一个简化的示例,因为没有理由将一条数据写入一个文件,然后立即将另一条数据写入整个文件。因此,通常必须有一些干预代码。

关于node.js - 多次调用异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336757/

相关文章:

php - Node js调用socket.io函数的用法

javascript - 仅在 app.use ('/api' 时渲染页面)在 Express 4 上

node.js - 使用 Mongo 和 Node 构建简单的 RESTful API

javascript - 如何查找 mongodb 中任何属性中包含 x 的所有结果?

node.js - WebSocket 握手响应 400,但仍然有效

node.js - 连接到 SQL Server ELOGIN 代码的 NodeJs 错误

javascript - 未处理的 promise 拒绝警告 : This error originated either by throwing inside of an async function without a catch block

mysql - NodeJS/MySQL/Promise 的问题

javascript - 以奇怪的方式对数组进行排序

Node.js/express.js/Backbone.js : req. body.keys 未定义?