public <T> Promise<T> create(final Promise.PromiseExecutorCallbackFn<T> executor) { return new Promise<>(executor); }
@Override @SuppressWarnings("unchecked") public <V> Promise<V> catch_(final CatchOnRejectedCallbackFn<? extends V> onRejected) { try { if (status == REJECTED) { return (SyncPromise<V>) onRejected.onInvoke(this.value); } else { return new SyncPromise<>((res, rej) -> res.onInvoke((V) value)); } } catch (final Exception e) { return new SyncPromise<>((res, rej) -> rej.onInvoke(e)); } }
@Override public Promise<Void> setup(final ProjectScreenModel model) { this.model = model; view.init(this); return loadServiceTasks().then(tasks -> promises.create((resolve, reject) -> { serviceTasksItemPresenters.setup(view.getServiceTasksTable(), tasks, (serviceTask, presenter) -> presenter.setup(serviceTask, this)); resolve.onInvoke(promises.resolve()); })); }
public <T> Promise<T> resolve(final T object) { return create((resolve, reject) -> resolve.onInvoke(object)); }
<T> Promise<Boolean> executeValidation(final Caller<T> caller, final Function<T, Boolean> call, final String errorMessage) { return promises .promisify(caller, call) .then(valid -> valid ? promises.resolve(true) : promises.reject(errorMessage)); }
private <M> ErrorCallback<M> defaultRpcErrorCallback(final Promise.PromiseExecutorCallbackFn.RejectCallbackFn reject) { return (final M o, final Throwable throwable) -> { reject.onInvoke(new Promises.Error<>(o, throwable)); return false; }; }
@Override @SuppressWarnings("unchecked") public <V> Promise<V> then(final ThenOnFulfilledCallbackFn<? super T, ? extends V> onFulfilled) { try { if (status == RESOLVED) { return (SyncPromise<V>) onFulfilled.onInvoke(value); } else { return new SyncPromise<>((res, rej) -> rej.onInvoke(value)); } } catch (final Exception e) { return new SyncPromise<>((res, rej) -> rej.onInvoke(e)); } }
@JsOverlay public static <V> Promise<V[]> all(IThenable<? extends V>... promises) { return allInternal(promises); }
@JsOverlay public static <V> Promise<V> race(IThenable<? extends V>... promises) { return raceInternal(promises); }
private SyncPromise(final PromiseExecutorCallbackFn<T> executor) { super(executor); status = PENDING; executor.onInvoke(new Resolver(), new Rejecter()); }
@Override public Promise<Void> setup(final ProjectScreenModel model) { this.model = model; view.init(this); return loadServiceTasks().then(tasks -> promises.create((resolve, reject) -> { serviceTasksItemPresenters.setup(view.getServiceTasksTable(), tasks, (serviceTask, presenter) -> presenter.setup(serviceTask, this)); resolve.onInvoke(promises.resolve()); })); }
public <T> Promise<T> resolve(final T object) { return create((resolve, reject) -> resolve.onInvoke(object)); }
private <M> ErrorCallback<M> defaultRpcErrorCallback(final Promise.PromiseExecutorCallbackFn.RejectCallbackFn reject) { return (final M o, final Throwable throwable) -> { reject.onInvoke(new Promises.Error<>(o, throwable)); return false; }; }
public <T> Promise<T> create(final Promise.PromiseExecutorCallbackFn<T> executor) { return new Promise<>(executor); }
@JsOverlay default void onInvoke(T value) { onInvoke(Js.<ResolveUnionType<T>>uncheckedCast(value)); } }
public <T> Promise<T> reject(final Object object) { return create((resolve, reject) -> reject.onInvoke(object)); }
@JsOverlay default void onInvoke(T value) { onInvoke(Js.<ResolveUnionType<T>>uncheckedCast(value)); } }
public <T> Promise<T> reject(final Object object) { return create((resolve, reject) -> reject.onInvoke(object)); }