Javascript node.js和websocket:是否可能运行到竞争状态?
我不熟悉node.js和websockets 让我们看一段代码,它利用了节点js中的websocket:Javascript node.js和websocket:是否可能运行到竞争状态?,javascript,node.js,websocket,Javascript,Node.js,Websocket,我不熟悉node.js和websockets 让我们看一段代码,它利用了节点js中的websocket: var myMap = new Map(); //some code here socket.on('next', function(id) { User.findById(id, function (err, entry) { // some code here entry.save(function (err){ m
var myMap = new Map();
//some code here
socket.on('next', function(id) {
User.findById(id, function (err, entry) {
// some code here
entry.save(function (err){
myMap.delete(id);
}
}
}
这段代码是否可以在共享变量myMap的竞争条件下运行?用户是一个基于猫鼬的对象
我知道javascript和node.js是单线程的。但是,访问myMap的回调(myMap.delete(id))让我感到困惑。节点是单线程的,因此
myMap
的更改是一致的。另一方面,回调myMap.delete
可以通过并发请求为已经删除的项目调用。该节点是单线程的,因此myMap
的更改是一致的。另一方面,可以通过并发请求为已删除的项目调用callbackmyMap.delete
。