9 this._ref_finalize = finalize;
25 this._ref_finalize(
this);
40classfield(Promise) .IntrusiveList _promise_handlers;
44classfield(PromiseHandler) .entity _promise_handler_data;
56 this._promise_result =
this;
66 LOG_SEVERE(
"Attempted to resolve a null promise");
71 LOG_SEVEREF(
"Resolved non-pending promise %i",
this);
75 if (this._promise_handlers)
88 LOG_SEVERE(
"Attempted to reject a null promise");
93 LOG_SEVEREF(
"Rejected non-pending promise %i",
this);
97 if (this._promise_handlers)
114 switch (this._promise_state)
117 if (!this._promise_handlers)
118 this._promise_handlers =
IL_NEW();
119 IL_PUSH(this._promise_handlers, h);
123 Promise ret = h._promise_handler_ret;
124 Promise p = h._promise_handler_resolve(ret, this._promise_result, h._promise_handler_data);
132 Promise ret = h._promise_handler_ret;
133 Promise p = h._promise_handler_reject(ret, this._promise_result, h._promise_handler_data);
147 PromiseHandler h =
new_pure(PromiseHandler);
148 h._promise_handler_ret = ret;
149 h._promise_handler_data = userdata;
150 h._promise_handler_resolve = onResolve;
151 h._promise_handler_reject = onReject;
157 ret._promise_result =
result;
164 ret._promise_result =
err;
202Promise Promise_sleep(
float n)
206 p.nextthink =
time + n;
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define IL_EACH(this, cond, body)
#define IL_DELETE(this)
Delete the list.
#define new_pure(class)
purely logical entities (not linked to the area grid)
string sourceLoc
Location entity was spawned from in source.
Promise Promise_catch_(Promise this, Promise ret, Promise(Promise ret, entity result, entity userdata) onReject, entity userdata)
void ref_init(entity this, int init, void(entity this) finalize)
void _Promise_handle(Promise this, PromiseHandler h)
Promise _Promise_onResolve_default(Promise ret, entity result, entity userdata)
Promise _Promise_onReject_default(Promise ret, entity err, entity userdata)
void _Promise_finalize(Promise this)
entity unref(Promise this)
Promise Promise_then_(Promise this, Promise ret, Promise(Promise ret, entity result, entity userdata) onResolve, entity userdata)
entity entity userdata _promise_handler_reject
void _Promise_done(Promise this, Promise ret, Promise(Promise ret, entity result, entity userdata) onResolve, Promise(Promise ret, entity err, entity userdata) onReject, entity userdata)
void Promise_resolve(Promise this)
Notify all Promise_then subscribers that this promise has resolved.
entity entity userdata _promise_handler_resolve
Promise Promise_new_(Promise this)
void Promise_reject(Promise this)
Notify all Promise_catch subscribers that this promise has rejected.
Promise _Promise_then(Promise this, Promise ret, Promise(Promise ret, entity result, entity userdata) onResolve, Promise(Promise ret, entity result, entity userdata) onReject, entity userdata)