我正在寻找javascript对象编辑的互斥锁。
确切的问题是:我正在从几个文件中异步读取。并将信息收集到单个对象。这可以归结为这个玩具示例
var o = {};
files_list.forEach(function(fpath){fs.readFile(fpath,
function(err,content){
var k = Math.floor((Math.random()*10)+1);
if(o[k])
{o[k].push(content);}
else
{o[k]=[content];}
}
);
据我所知,由于readFile是异步的,因此可能会同时打开多个文件。
所以我想要的是在每个读取回调中访问对象o互斥,这样两个同时读数就不会搞砸了。
使用javascript保证这一点的方法是什么? (同步阅读除外)
(明确的答案在下面给出)