Ejemplo n.º 1
0
createPromise = function (base, props) {
	var p = function (win, fail) {
		var d = createDeferred();
		p._base.then(win, fail, d.resolve);
		return d.promise;
	};
	return create(base, props)._link(merge((p.then = p), promise));
};
Ejemplo n.º 2
0
module.exports = function (value) {
	var p, r;
	if (isPromise(value)) {
		return value;
	}
	p = bindMethods({}, null, port);
	r = merge(p.then, p);
	p.value = value;
	p.failed = value instanceof Error;
	return r;
};
Ejemplo n.º 3
0
module.exports = deferred = function () {
	var d, p;
	d = Object.create(proto);
	d.pending = [],
	d.timeout = setTimeout(noop, Infinity);

	p = bindMethods({}, d, port);
	d.promise = merge(p.then, p);
	d.promise.callback = p.cb;

	return {
		resolve: d.resolve.bind(d),
		promise: d.promise
	};
};
Ejemplo n.º 4
0
	defineProperty = Object.defineProperty = function (obj, name, desc) {
		var odesc;
		if (
			// Error - fallback to native
			!obj ||
				// Objects created with Object.create(null) don't have hasOwnProperty
				// If it's set for first time - will work
				(!obj.hasOwnProperty ? !(name in obj) : !obj.hasOwnProperty(name)) ||
				// Is writable - will work
				desc.writable ||
				// Will be writable - will work
				((odesc = getOwnPropertyDescriptor(obj, name)) && (odesc.writable ||
					// Error - fallback to native
					!odesc.configurable))) {
			return _native(obj, name, desc);
		}
		delete obj[name];
		return _native(obj, name, odesc ? merge(odesc, desc) : desc);
	};
Ejemplo n.º 5
0
  , createPromise, createDeferred, promise, resolved, unresolved, deferred;

createPromise = function (base, props) {
	var p = function (win, fail) {
		var d = createDeferred();
		p._base.then(win, fail, d.resolve);
		return d.promise;
	};
	return create(base, props)._link(merge((p.then = p), promise));
};

promise = merge(base.promise, {
	end: function (handler) {
		this._base.end(handler);
		return this;
	},
	valueOf: function () {
		return this._base._resolved ? this._base._value : this;
	}
});

resolved = merge(base.resolved, {
	then: function (win, fail, resolve) {
		var cb = this._failed ? fail : win;
		nextTick(isFunction(cb) ? sequence(silent(cb, this._value), resolve) :
			curry(resolve, (cb == null) ? this._promise : cb));
	},
	end: function (handler) {
		if (this._failed) {
			nextTick(
				isFunction(handler) ? curry(handler, this._value) :
Ejemplo n.º 6
0
			.then(function (o2) {
				delete o2.base;
				o2.join = o2.default;
				delete o2.default;
				return merge(o, o2);
			});
Ejemplo n.º 7
0
			keys(this.select).forEach(function (name) {
				merge(this, this.index.data[name]);
			}, this);