node.js - 如何在 Node.js 中等待

标签 node.js mongodb coffeescript

这是一个关于我认为 Node js 中的简单模式的问题。

这是我在 CoffeeScript 中的示例:

db_is_open = false

db.open ->
  db_is_open = true

wait = ->
wait() until db_is_open

在 javascript 中再次出现:

var db_is_open = false;

db.open(function() {
  db_is_open = true;
});

function wait() {};
while (not db_is_open) { wait()};

这根本不起作用,因为 while 循环永远不会放弃控制,我想这是有道理的。但是如何告诉等待函数尝试队列中的下一个回调?

最佳答案

我喜欢使用 async module当我有一些需要同步运行的代码时。

var async = require('async');

async.series([
  function(next){
    db.open(next)
  }
, function(next){
    db.loadSite('siteName', next)
  }
], function(err){
  if(err) console.log(err)
  else {
    // Waits for defined functions to finish
    console.log('Database connected')
  }
})

关于node.js - 如何在 Node.js 中等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881892/

相关文章:

node.js - 在 node.js 中调用 https web 服务(在代理后面)

javascript - Yargs 帮助不显示所有帮助选项

javascript - Kafka、nodejs客户端(kafkaesque)socket默认超时

javascript - mongodb nodejs多次插入问题

javascript - 仅将数据返回到数组中

Ember.js:从嵌套路由调用 ApplicationRoute 的操作

backbone.js - 如何在 Backbone View 中绑定(bind)/取消绑定(bind)窗口事件

javascript - 如何在 Mongoose 中实现一对一的关系和杠杆作用?

node.js - 在mongodb中创建空集合

coffeescript - CoffeeScript 中的 Levenshtein 距离公式?