var Firebase = require("firebase");
var RSVP = require("rsvp");
var ref1 = new Firebase('https://firebaseui.firebaseio.com/chat');
var ref2 = new Firebase('https://firebaseui.firebaseio.com/largechat');
function readRef(ref, context, data) {
ref1.once('value', function(snapshot) {
console.log('Done loading '+ref.toString());
context.done();
}, function(error) {
context.done(error);
});
}
function readRef1(context, data) { readRef(ref1, context, data); }
function readRef2(context, data) { readRef(ref2, context, data); }
function createContextPromise(operation, data) {
return new RSVP.Promise(function(resolve, reject) {
operation({ done: function(error) {
if (error) {
reject(error);
}
else {
resolve();
}
}}, data);
});
}
function allDone(ops, context, data) {
var promises = [];
ops.forEach(function(op) {
promises.push(createContextPromise(op, data));
});
RSVP.all(promises).then(function() {
console.log('Done loading all');
context.done();
}).catch(function(error) {
context.done(error);
});
}
function waitForAll() {
var ops = Array.prototype.slice.call(arguments); // capture the arguments
return function(context, data) {
//var promises = ops.map(function(op) { return createContextPromise(op,data); });
//RSVP.all(promises).then(function() {
RSVP.all(ops.map(op => createContextPromise(op))).then(function() {
console.log('Done loading all');
context.done();
}).catch(function(error) {
context.done(error);
});
};
}
var context = { done: function(error) { console.log('context.done('+error+')'); } }
var data = {};
waitForAll(readRef1, readRef2)(context, data);
var snapshot = await ref1.once('value');