puf's notebooks

  • Promises - /puf/promises
    Last edited 7 years ago
    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');
  • stackoverflow 33424679 - /puf/stackoverflow33424679
    Last edited 7 years ago
    // http://stackoverflow.com/questions/33424679/firebase-not-responding-no-callback-node-js var Firebase = require('firebase'); var _ = require('lodash'); var dbConf = new Firebase('https://nodeish.firebaseio-demo.com/config'); var dbCred = new Firebase('https://nodeish.firebaseio-demo.com/printerCredentials'); dbConf.set({"test": "test"}); var config = {}; var printerCredentials = {}; function fillConfig(snapshot) { console.log(snapshot.val()); //NO LOG config = _.assign(config,snapshot.val()); }; function fillCredentials(snapshot) { console.log(snapshot.val()); //NO LOG printerCredentials = _.assign(printerCredentials, snapshot.val()); }; function error(err) { console.log(err); } function save(obj) { dbCred.set(obj); }; dbConf.once('value', fillConfig, error); dbCred.once('value', fillCredentials, error);