sails.jsasynchronous问题

我想testingsails.js的asynchronous性能,所以我写了下面的代码等待10秒(我认为代码应该由于callback函数asynchronous执行)。 当我访问执行代码的url时,它等了10秒,没事的。

但是与此同时,我访问了一个只执行res.view(anohterView)的不同url,它仍然等了10多秒。 这是否意味着sails.js同步执行,并且第二个访问的URL被第一个阻塞? 谢谢!

someModel.findOne(modelId, function foundModel (err, model) { if (err) return next(err); if (!model) return next('Model doesn\'t exist.'); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); } sleep(10000); res.view(Someview); }); 

你的睡眠function被阻塞。 Sails.js / nodejs是单线程的,所以当你的callback被调用时,线程将被阻塞,直到完成。

如果你想“睡觉”,你应该使用setTimeout :

 someModel.findOne(modelId, function foundModel (err, model) { if (err) return next(err); if (!model) return next('Model doesn\'t exist.'); setTimeout( function() { res.view(Someview); } 10000 ); });