- , . AsyncTask, , , .., .
AsyncTask, , .. , , promises. JQ - Java7/Android, Java JavaScript Promises/A+. Promise - , , Future .
( JQ) , foo, bar baz:
try {
int x = foo();
int y = bar(x);
return baz(y);
} catch (Exception e) {
return -1;
} finally {
}
return foo().then(x -> {
return bar(x);
}).then(y -> {
return baz(y);
}).fail(e -> {
return Value.wrap(-1);
}).fin({
// Always called
});
( , , then(new OnFulfilledCallback() {...}) .., Android Studio , - Retrolambda, lambda Java8 Java7.)
foo, bar baz Promise . JQ promises :
private Promise<Integer> foo() {
return JQ.defer(() -> {
int result = 42;
// do some heavy processing...
return result;
});
}
Note that it JQalso provides useful utilities for synchronizing multiple concurrent operations, adding timeouts to lengthy operations, etc. etc.
Disclaimer: somewhat shameless promotion as I am the author of JQ .;)
source
share