GDeferred

GWT Deferred API similar to JQuery's.

Лицензия

Лицензия

Группа

Группа

io.reinert.gdeferred
Идентификатор

Идентификатор

gdeferred
Последняя версия

Последняя версия

0.9.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

GDeferred
GWT Deferred API similar to JQuery's.
Ссылка на сайт

Ссылка на сайт

http://reinert.org
Система контроля версий

Система контроля версий

https://github.com/reinert/gdeferred

Скачать gdeferred

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/io.reinert.gdeferred/gdeferred/ -->
<dependency>
    <groupId>io.reinert.gdeferred</groupId>
    <artifactId>gdeferred</artifactId>
    <version>0.9.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.reinert.gdeferred/gdeferred/
implementation 'io.reinert.gdeferred:gdeferred:0.9.0'
// https://jarcasting.com/artifacts/io.reinert.gdeferred/gdeferred/
implementation ("io.reinert.gdeferred:gdeferred:0.9.0")
'io.reinert.gdeferred:gdeferred:jar:0.9.0'
<dependency org="io.reinert.gdeferred" name="gdeferred" rev="0.9.0">
  <artifact name="gdeferred" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.reinert.gdeferred', module='gdeferred', version='0.9.0')
)
libraryDependencies += "io.reinert.gdeferred" % "gdeferred" % "0.9.0"
[io.reinert.gdeferred/gdeferred "0.9.0"]

Зависимости

provided (1)

Идентификатор библиотеки Тип Версия
com.google.gwt : gwt-user jar 2.6.1

test (1)

Идентификатор библиотеки Тип Версия
junit : junit jar 4.11

Модули Проекта

Данный проект не имеет модулей.

GDeferred

GDeferred is a fork of JDeferred - "Java Deferred/Promise library similar to JQuery's Deferred Object" - reimplemented for GWT.

Features

  • Deferred Object and Promise
  • Promise callbacks
    • .then(…)
    • .done(…)
    • .fail(…)
    • .progress(…)
    • .always(…)
  • Multiple promises (soon!)
    • .when(p1, p2, p3, …).then(…)
  • Java Generics support
    • Deferred<Integer, Exception, Double> deferred;
    • deferred.resolve(10);
    • deferred.reject(new Exception());
    • deferred.progress(0.80);
  • Java 8 Lambda friendly

Quick Examples

Deferred Object and Promise

Deferred deferred = new DeferredObject();
Promise promise = deferred.promise();
promise.done(new DoneCallback() {
  public void onDone(Object result) {
    ...
  }
}).fail(new FailCallback() {
  public void onFail(Object rejection) {
    ...
  }
}).progress(new ProgressCallback() {
  public void onProgress(Object progress) {
    ...
  }
}).always(new AlwaysCallback() {
  public void onAlways(State state, Object result, Object rejection) {
    ...
  }
});

With the reference to deferred object, you can then trigger actions/updates:

deferred.resolve("done");
deferred.reject("oops");
deferred.progress("100%");

Filter

Filtering allows one to return a different promise of the same state.

Deferred d = …;
Promise p = d.promise();
Promise filtered = p.then(new DoneFilter<Integer, Integer>() {
  public Integer filterDone(Integer result)
    return result * 10;
  }
});

filtered.done(new DoneCallback<Integer>{
  public void onDone(Integer result) {
    // result would be original * 10
    System.out.println(result);
  }
});

d.resolve(3) -> 30.

Pipe

Piping allows one to return a different promise of the any state.

Deferred d = ...;
Promise p = d.promise();

p.then(new DonePipe<Integer, Integer, Exception, Void>() {
  public Deferred<Integer, Exception, Void> pipeDone(Integer result) {
    if (result < 100) {
      return new DeferredObject<Integer, Void, Void>().resolve(result);
    } else {
      return new DeferredObject<Integer, Void, Void>().reject(new Exception(...));
    }
  }
}).done(...).fail(...);

d.resolve(80) -> done!
d.resolve(100) -> fail!

Java 8 Lambda

Now this is pretty cool when used with Java 8 Lambda!

dm.when(() -> {
  return "Hey!";
}).done(r -> System.out.println(r));

dm.when(
  () -> { return "Hello"; },
  () -> { return "World"; }
).done(rs ->
  rs.forEach(r -> System.out.println(r.getResult()))
);

Documentation

Downloads

GDeferred is currently available at maven central.

Maven

<dependency>
    <groupId>io.reinert.gdeferred</groupId>
    <artifactId>gdeferred</artifactId>
    <version>0.9.0</version>
</dependency>

License

GDeferred is freely distributable under the Apache 2.0 License

<script type="text/javascript"> /* */ </script> <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> </script>

Версии библиотеки

Версия
0.9.0