var Gun = (typeof window !== "undefined")? window.Gun : require('../gun');

Gun.chain.promise = function(cb) {
  var gun = this, cb = cb || function(ctx) { return ctx };
  return (new Promise(function(res, rej) {
    gun.once(function(data, key){
    	res({put: data, get: key, gun: this});
    });
  })).then(cb);
};

Gun.chain.then = function(cb) {
	return this.promise(function(res){
		return cb? cb(res.put) : res.put;
	});
};