Пример #1
0
	/**
	 * Find a query and returns a cursor
	 * @returns {Disposer<Cursor>} A promise to be used with Promise.using
	 */
	find( query ) {
		const self = this;
		const promise = new Promise(function( resolve ) {
			resolve( self._collection.find( query ) );
		});
		return promise.disposer(function( cursor ) {
			return cursor.close();
		});
	}
Пример #2
0
Файл: ssh.js Проект: Tuuyi/ops
function ssh(params, with_disposer) {
  var prom = new Promise(function(resolve, reject) {
    var conn = new ssh2();
    conn.on('ready', function() { resolve(_decorate(conn)); });
    conn.on('error', function(err) { reject(err); });
    conn.connect.call(conn, params);
  });

  if (with_disposer) {
    return prom.disposer(function(connection) {
      connection.end();
    });
  } else {
    return prom;
  }
}
Пример #3
0
FsMetastore.prototype.lock = function lock(userId, shared) {
	var promise = new Promise(function(resolve, reject) {
		var locker = this._lockMap[userId];
		if (!locker) {
			var filePath;
			if (this._isSingleUser) {
				filePath = nodePath.join(this._options.configParams.get('orion.single.user.metaLocation') || os.homedir(), '.orion');
			} else {
				filePath = this._computeLockFilePath(userId);
			}
			filePath = nodePath.join(filePath, ".lock");
			locker = new fileLocker(filePath, this._options);
			this._lockMap[userId] = locker;
		}
		locker.lock(shared).then(resolve, reject);
	}.bind(this));
	return promise.disposer(function(releaser) {
		return releaser();
	});
};