then (onresolve, onreject) {
		// Return rejected promise if cancelled
		if (this[_done]) {
			return promiseme((res, rej) => {
				rej(new Error("Reactor cancelled"));
			}).then(onresolve, onreject);
		}
		// Create new base promise if not already present
		if (this[_promise] === null) {
			this[_promise] = promiseme((res, rej) => {
				this[_resolve] = res;
				this[_reject] = rej;
			});
		}
		// Forward args to base promise's then()
		return this[_promise].then(onresolve, onreject);
	}
// Returns promise to be resolved/rejected on next update
Returns promise to be resolved/rejected on next update
Returns promise to be resolved / rejected on next update
then (onresolve, onreject) {
		if (this[_done]) {
			return promiseme((res, rej) => {
				rej(new Error("Reactor cancelled"));
			}).then(onresolve, onreject);
		}
		if (this[_promise] === null) {
			this[_promise] = promiseme((res, rej) => {
				this[_resolve] = res;
				this[_reject] = rej;
			});
		}
		return this[_promise].then(onresolve, onreject);
	}
then ( onresolve , onreject ) { if ( this [ _done ] ) { return promiseme ( ( res , rej ) => { rej ( new Error ( "Reactor cancelled" ) ) ; } ) . then ( onresolve , onreject ) ; } if ( this [ _promise ] === null ) { this [ _promise ] = promiseme ( ( res , rej ) => { this [ _resolve ] = res ; this [ _reject ] = rej ; } ) ; } return this [ _promise ] . then ( onresolve , onreject ) ; }
Returns promise to be resolved/rejected on next update
Returns promise to be resolved / rejected on next update
// Return rejected promise if cancelled // Create new base promise if not already present // Forward args to base promise's then()