首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sails.js异步问题

sails.js异步问题
EN

Stack Overflow用户
提问于 2014-08-12 06:04:44
回答 1查看 792关注 0票数 1

我想测试sails.js的异步性能,所以我编写了下面的代码,等待10秒(我认为由于回调函数,代码应该异步执行)。当我访问执行代码的url时,它等待了10s,很好。

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

代码语言:javascript
复制
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);
});
EN

回答 1

Stack Overflow用户

发布于 2014-08-12 14:38:06

你的睡眠功能被阻塞了。‘s/nodejs是single-threaded,所以当您的回调被调用时,线程将被阻塞,直到它完成为止。

如果你想‘睡觉’,你应该使用setTimeout

代码语言:javascript
复制
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
  );
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25257214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档