That is pretty awesome. Thanks! On Thu, Sep 7, 2017 at 6:55 AM, Benjamin DeLillo <[email protected]> wrote:
> I decided to package this up in a standalone library so it can be used > until such time that it makes it into a GWT release. > > https://github.com/OneGeek/GWT-CompletableFuture > > On Monday, September 5, 2016 at 4:47:10 AM UTC-4, Andrei Korzhevskii wrote: >> >> I guess you need to super-source this class so the gwt compiler could use >> it. >> >> You can take a look at my initial CompletableFuture implementation here: >> >> https://github.com/nordligulv/gwt/tree/completable-future >> https://github.com/nordligulv/gwt/commit/ea70c5358bac3c939cb >> 0c1628a58ccc462cd7423 >> >> Feel free to use it but note that I haven't tested it properly yet. >> >> >> >> On Monday, September 5, 2016 at 3:28:27 AM UTC+3, Ian Preston wrote: >>> >>> I'm trying to emulate CompletableFuture by backing directly onto >>> Promise, but when compiling it gives this error: >>> "No source code is available for type java.util.concurrent.Completab >>> leFuture<T>" >>> (it finds other JRE classes I've replaced fine) >>> >>> My source I'm including is below. Am I doing anything illegal? >>> ******************************************** >>> package java.util.concurrent; >>> >>> import com.google.gwt.user.client.*; >>> import jsinterop.annotations.*; >>> >>> import java.util.function.*; >>> >>> @JsType(isNative=true, name = "Promise", namespace = JsPackage.GLOBAL) >>> public class CompletableFuture<T> implements CompletionStage<T> { >>> >>> @JsMethod(name = "then") >>> public native <U> CompletableFuture<U> thenApply(Function<? super >>> T,? extends U> fn); >>> >>> @JsMethod(name = "then") >>> public native CompletableFuture<Void> thenAccept(Consumer<? super T> >>> action); >>> >>> @JsMethod(name = "then") >>> public native <U> CompletableFuture<U> thenCompose(Function<? super >>> T, ? extends CompletionStage<U>> fn); >>> >>> @JsMethod(name = "reject") >>> public native boolean completeExceptionally(Throwable ex); >>> >>> @JsMethod(name = "resolve") >>> public native boolean complete(T value); >>> >>> @JsMethod(name = "resolve") >>> public static native <U> CompletableFuture<U> completedFuture(U >>> value); >>> >>> @JsOverlay >>> public T get() throws InterruptedException, ExecutionException { >>> Window.alert("Calling synchronous get() on CompletableFuture is >>> not possible in Javascript!"); >>> throw new IllegalStateException("Unimplemented!"); >>> } >>> } >>> >> -- > You received this message because you are subscribed to the Google Groups > "GWT Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/google-web-toolkit. > For more options, visit https://groups.google.com/d/optout. > -- Cheers, Peter Donald -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
