示例#1
0
var Storage = function(options)
{
  this._options = options;
  
  this._defer = defer();
  this._promise = this._defer.promise;
};
示例#2
0
function get_stories(url) {
	var d = deferred(), stories = [];
	request(url)
		.on('error', function (error) {
			d.reject(error);
		})
	.pipe(new FeedParser())
		.on('error', function (error) {
			console.log("Unable to get stories of " + url);
			console.log(error);
			d.reject(error);
		})
		.on('readable', function() {
			var stream = this, item;
			while (item = stream.read()) {
				stories.push({
					title: item.title,
					description: item.description,
					link: item.link,
					pubdate: item.pubdate,
					guid: item.guid,
					feed: url
				});

			}
		})
		.on('end', function() {
			d.resolve(stories);
		});
	return d.promise;
}
示例#3
0
文件: xhr.js 项目: KlimMalgin/MnM
    return function (opts) {
        /**
         * @type {{promise: Promise, resolve: Function, reject: Function}} Deferred
         */
        var d = deferred();
        xhr({
            withCredentials: true,
            json: opts && opts.body ? opts.body : {},
            uri: apiHost + config.uri(opts),
            method: config.method,
            headers: merge({
                "Cache-Control": "no-cache"
            }, config.headers || {})
        }, function (err, resp, body) {
            if (err) {
                d.reject({error: err});
                return;
            }
            switch (body.status) {
                case 'success' :
                    d.resolve(body.data);
                    break;
                case 'error' :
                    d.reject(merge(body.data, {
                        bodyMessage : body.message
                    }));
                    break;
                default :
                    break;
            }
        });

        return d.promise;
    }
示例#4
0
  callback: function(matches) {
    var d = deferred()

      , params = {
          host: 'dfill.cc',
          port: 80,
          method: 'GET',
          path: '/api/' + matches[1]
        }

      , req = http.request(params, function (res) {
          res.setEncoding('utf8');
          var buffer = '';

          res.on('data', function (chunk) {
            buffer += chunk;
          });

          res.on('end', function () {
            d.resolve(JSON.parse(buffer).join(' '));
          });
        });

    req.end();
    return d.promise;
  }
示例#5
0
Pianod.prototype.status = function() {
	'use strict';

	var self = this,
		stopCodes = [204],
		def = deferred();

	self.sendPianodRequest('STATUS', stopCodes).then(function(response) {
		//console.log('STATUS_VALUE', response);
		response.forEach(function(packet) {
			packet.forEach(function(line) {
				switch (line.code) {
					case 111: //id
					case 112: //album
					case 113: //artist
					case 114: //title
					case 115: //station
					case 116: //rating
					case 117: //seeAlso
					case 118: //coverArt
						var splittedMessage = line.message.split(': ');
						var key = splittedMessage.slice(0,1);
						var value = splittedMessage.slice(1).join(': ');
						self.setSongInfo(line.code, value);
						break;
				}
			});
		});
		def.resolve({error: false, data: {songInfo: self.getSongInfo()}});
	});
	return def.promise;
};
BulkLoader.prototype.bulkIndex = function(documents) {
    var d = deferred();

    var request = [];

    _.forEach(documents, function(doc) {
        request.push({ index: { _index: this.index, _type: this.type } });
        if(!doc.hasOwnProperty('id'))
            doc.id = this.nextId++;
        request.push(doc);
    }, this);

    var id =  documents[0].id 

    this.client.bulk({
        requestTimeout: '60000',
        timeout: '1m',
        body: request
    }).then(function(b) {
        d.resolve(true);
    }, function(e) {
        d.reject(new Error('At batch, starting doc id: ' + id + ' - Unable to bulk insert due to: ' + JSON.stringify(e)));
    });

    return d.promise;
}
BulkLoader.prototype.getUserAndProduct = function(documents) {
    var d = deferred();

    var getById = this.getById;

    var result = [];

    async.each(documents, function(doc, cb) {
        var userId = doc.user_id;
        var productId = doc.product_id;
        var affinity = { relation: doc.relation };

        getById(userId, 'users', 'user').then(function(user) {
            affinity['_user'] = user._source;
            getById(productId, 'products', 'product').then(function(product) {
                affinity['_product'] = product._source;
                result.push(affinity);
                cb();
            }, function(e2) {
                cb(e2);
            });
        }, function(e1) {
            cb(e1);
        });
    }, function(e) {
        if(e)
            d.reject(new Error('Error retrieving user and product due to: ' + JSON.stringify(e)));
        else
            d.resolve(result);
    });

    return d.promise;
}
extract = function (html) {
	var def = deferred(), data = this;

	// Process HTML with jsdom parser
	jsdom.env({
		html: String(html),
		done: function (errors, window) {
			var elems;
			if (errors) {
				def.reject(new Error(errors));
				return;
			}

			// The title is the content of the 1st "h1" element
			elems = window.document.getElementsByTagName('h1');
			if (elems.length) data.title = elems[0].textContent;

			// The description is the content of the 1st "p" element
			elems = window.document.getElementsByTagName('p');
			if (elems.length) data.description = elems[0].textContent;
			def.resolve(data);
		}
	});

	return def.promise;
};
示例#9
0
	deferred.map(testFilePaths, function (path) {
		return deferred(readFile(path),
			readFile(path.replace(/_?\.js$/, '_output.json'))).then(
			function (result) {
				a.deep(t(result[0]), JSON.parse(String(result[1])));
			}
		);
	}).done(function (res) {
function getPromiseWithSuccessCallback(origPromise, sucess){
	var d = deferred();
	origPromise.done(function(result){
		sucess(result, d);
	}, d.reject);

	return d.promise;
}
示例#11
0
文件: is-ignored.js 项目: medikoo/fs2
isIgnored = function (mode, path, options) {
	var watch, globalRules, lIsIgnored, getMapFns, lDirname, promise;

	if (isValue(options.globalRules)) {
		globalRules = isArray(options.globalRules)
			? options.globalRules
			: String(options.globalRules).split(eolRe);
	}

	if (mode) {
		getMapFns = [];
		if (!globalRules) globalRules = [];
		if (!isArray(mode)) {
			if (!modes[mode]) throw new Error("Unknown mode '" + mode + "'");
			mode = [mode];
		}
		mode.forEach(function (name) {
			var lMode = modes[name];
			if (!lMode) throw new Error("Unknown mode '" + name + "'");
			getMapFns.push(function (pathIgnored) {
				return getMap(lDirname, lMode, watch, parseSrc);
			});
			if (lMode.globalRules) push.apply(globalRules, lMode.globalRules);
		});
	}
	watch = options.watch;

	if (globalRules) {
		globalRules = prepareRules(globalRules);
		if (applyGlobalRules(path, globalRules)) {
			promise = deferred(true);
			if (watch) promise.close = noop;
			return promise;
		}
	}

	if (!mode) {
		promise = deferred(false);
		if (watch) promise.close = noop;
		return promise;
	}

	lIsIgnored = new IsIgnored(path, watch);
	lDirname = lIsIgnored.dirname;
	return lIsIgnored.init(buildMap(lDirname, getMapFns, watch));
};
示例#12
0
			return t(name1, name2)(function () {
				return deferred(lstat(name1)(a.never, function () {
					a.ok(true, "No first file");
				}), lstat(name2)(function (stats2) {
					a.deep(stats1, stats2, "Same");
					return unlink(name2);
				}))(false);
			});
示例#13
0
文件: chmod.js 项目: medikoo/fs2
chmod = function (path, mode) {
	var def = deferred();
	original(path, mode, function (err, stats) {
		if (err) def.reject(err);
		else def.resolve(stats);
	});
	return def.promise;
};
示例#14
0
文件: server.js 项目: poolik/ingliste
function queryRemoteState(client) {
  var d = deferred();
  client.query('SELECT * FROM remote WHERE active = true', function (err, result) {
    if (err) d.reject(err);
    else d.resolve(result.rows[0]);
  });
  return d.promise;
}
示例#15
0
 })(), (function() {
   var d = def();
   csbsIngredient.obs(_sockets, socket.id).then(function(rObs) {
     ingredient = rObs;
     d.resolve();
   });
   return d.promise;
 })()).then(function() {
示例#16
0
文件: server.js 项目: poolik/ingliste
function getInitialState(client) {
  var d = deferred();
  var query = client.query('SELECT * FROM remote');
  query.on('row', function (row, result) { result.addRow(row); });
  query.on('error', function (error) { d.reject(error); });
  query.on('end', function (result) { d.resolve(result.rows); });
  return d.promise;
}
示例#17
0
	return deferred.map(urls, function(url) {
		var def = deferred();
		req.get("https://plusone.google.com/_/+1/fastbutton?url="+encodeURIComponent(url)+"&count=true", function(err, respobj, resp) {
			var count = resp.replace(/^[\s\S]*? \{c\:\s*(\d+)[\s\S]+$/, '$1');
			def.resolve({url:url, metric:'endorsements', count:(!isNaN(count) ? parseInt(count,10) : 0)});
		});
		return def.promise;
	});
示例#18
0
 def((function() {
   var d = def();
   csbsChart.obs(_sockets, socket.id).then(function(rObs) {
     chart = rObs;
     d.resolve();
   });
   return d.promise;
 })(), (function() {
	return deferred.map(urls, function(url) {
		var def = deferred();
		req.get("http://www.linkedin.com/countserv/count/share?url="+encodeURIComponent(url), function(err, resp, body) {
			var data = JSON.parse(body.replace(/^[^\{]+/, '').replace(/[^\}]+$/, ''));
			def.resolve({url:url, metric:'shares', count:(data.count ? data.count : 0)});
		});
		return def.promise;
	});
示例#20
0
statP = memoize(function (filename) {
	var def = deferred();
	stat(filename, function (err, stats) {
		if (err) def.reject(err);
		else def.resolve(stats);
	});
	return def.promise;
});
示例#21
0
var find_problems = function(infolder)
{
    var def = deferred();
    runcpp(problemfinderfolder, infolder, configs.problemexe)(function(){
        def.resolve();
    });
    return def.promise;
};
示例#22
0
 this.trytodelete = function()
 {
     var def = deferred();
     fs.unlink(this.getpath(), function (err) {
         if (err) def.reject('C');
         else def.resolve();
     });
     return def.promise;
 };
 return (function (path) {
     var def = deferred();
     try {
         copier.deleteRecursively(path);
         def.resolve();
     } catch (e) {
         def.reject(err);
     }
 })(path);
Affinity.prototype.getAll = function( ) {
    "use strict";

    var def = deferred();
	this.client.query("SELECT * FROM affinity", [], function(err, result) {
		def.resolve( result );
	} );
	return def.promise;
};
Affinity.prototype.getByUser = function( user_id ) {
    "use strict";

    var def = deferred();
	this.client.query("SELECT product.* FROM affinity, product WHERE user_id=? AND affinity.product_id = product.id", [user_id], function(err, result) {
		def.resolve( result );
	} );
	return def.promise;
};
示例#26
0
文件: run.js 项目: bernii/tad
	return deferred.reduce(mapToArray(tests), function (ignore, data) {
		var o, d, finish, done, name, f;
		name = data[0];
		f = data[1];
		d = deferred();
		finish = function () {
			logger.out();
			d.resolve();
		};
		logger.in(name);
		if (isFunction(f)) {
			try {
				if (f.conf.d) {
					done = function (o) {
						if (o) {
							if (isError(o)) {
								assert.fail(o);
								finish();
							} else {
								run(testee, o, assert, logger)(finish).end();
							}
						} else {
							finish();
						}
					};
					if (f.conf.t) {
						if (f.conf.a) {
							f(testee, assert, done);
						} else {
							f(testee, done);
						}
					} else if (f.conf.a) {
						f(assert, done);
					} else {
						f(done);
					}
				} else {
					if (f.conf.t) {
						o = f(testee, assert);
					} else {
						o = f(assert);
					}
					if (o) {
						run(testee, o, assert, logger)(finish).end();
					} else {
						finish();
					}
				}
			} catch (e) {
				logger.error(e);
				finish();
			}
		} else {
			run(testee, f, assert, logger)(finish).end();
		}
		return d.promise;
	}, null)(noop);
示例#27
0
文件: dbot.js 项目: dddware/dbot
  , npmls = function () {
      var d = deferred();

      cp.exec('npm ls --json', function(err, stdout, stderr) {
        d.resolve(JSON.parse(stdout));
      });

      return d.promise;
    }
示例#28
0
 this.runexec = function()
 {
     var def = deferred();
     var child = exec(this.getpath(),{cwd: folder.getfpath()},
         function (error, stdout, stderr) {
             def.resolve();
         });
     return def.promise;
 };
示例#29
0
 deferred.map(cart.books,function(book){
     var d = deferred();
     service.getBookById(book.id,function(error,result){
        if(!error){
            d.resolve(new cartModel(result[0],book.amount));
        }
     });
     return d.promise;
 })(function(result){
示例#30
0
 this.deleteit = function()
 {
     var def = deferred();
     fs.remove(this.getpath(),function(err){
         if (err) def.reject('couldnt delete');
         else def.resolve();
     });
     return def.promise;
 };