Node.js等待多个事件

时间:2014-10-09 09:37:30

标签: node.js javascript-events event-handling

如何以干净的方式等待发出多个事件?

类似的东西:

event.on(['db:mongo:ready', 'db:redis:ready', 'db:rethinkdb:ready'], function() {
   server.listen()
});

2 个答案:

答案 0 :(得分:2)

此示例使用rsvp promises:

完成
var RSVP = require('rsvp'),
    Promise = RSVP.Promise;

var emitted_promises = [];


yourEvents.foreach(function(eventName){
  emitted_promises.push(new Promise(function(resolve, reject){
    event.on(eventName, function(){
      resolve('done');
    });
  });
});

RSVP.all(emitted_promises)
  .then(function(emitted){
      //now you know they all are done
      emitted; //array of 'done' but can be passed anything you need
  });

答案 1 :(得分:1)

只需在JavaScript中使用{!! Form::open(['url'=>'agenda']) !!} {!! Form::label('starttime', 'Heure de début: ') !!} {!! Form::input('time', 'starttime') !!} <tr> {!! Form::label('endtime', 'Heure de fin: ') !!} {!! Form::input('time', 'endtime') !!} <tr> {!! Form::label('breaktime', 'Temps de pause: ') !!} {!! Form::input('time', 'breaktime') !!} <tr> {!! Form::submit('Envoyer' ) !!} {!! Form::close() !!} 即可等待所有事件,直到准备就绪为止。

示例等待与以下对象的多个连接mongoose

Promise.all

这不是最好的方法,但是它可以解决您遇到的情况