Skip to content

Commit 9c24160

Browse files
committed
when all examples added
1 parent 035fdcc commit 9c24160

1 file changed

Lines changed: 48 additions & 3 deletions

File tree

README.md

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ It is not very easy to controll a complex flow of asynchronus operations special
4444

4545
### 1. Hello World!!
4646

47-
4847
```java
4948

5049
Deferred<String> deferred = DeferredFactory.createDeferred();
@@ -79,10 +78,9 @@ It is not very easy to controll a complex flow of asynchronus operations special
7978

8079
### 2. Promise Chaining
8180

82-
8381
```java
8482

85-
Deferred<String> deferred = DeferredFactory.createDeferred();
83+
Deferred<String> deferred = DeferredFactory.createDeferred();
8684

8785
deferred.then(new Callbacks.SuccessCallBack<String, String>() {
8886
@Override
@@ -119,4 +117,51 @@ Deferred<String> deferred = DeferredFactory.createDeferred();
119117

120118
//to resolve use deferred.resolve("Hello");
121119
//to reject use deferred.reject(new RuntimeException("Hello Hell!!"));
120+
```
121+
122+
### 3. When all with Callable
123+
124+
```java
125+
126+
Deferred.when(new Callable<String>(){
127+
public String call() throws Exception {
128+
Thread.sleep(100);
129+
return "Hello";
130+
}
131+
}, new Callable<String>(){
132+
public String call() throws Exception {
133+
Thread.sleep(200);
134+
135+
//note: set accept value to false to raise an exception
136+
//uses for experiment
137+
if(accept) {
138+
return " ";
139+
}
140+
141+
throw new RuntimeException("Second call failed");
142+
}
143+
}, new Callable<String>(){
144+
public String call() throws Exception {
145+
return "World!!";
146+
}
147+
}).then(new SuccessCallBack<Object, List<String>>() {
148+
@Override
149+
public Object call(List<String> values) {
150+
String result = "";
151+
for(String value : values) {
152+
result = result + value;
153+
}
154+
System.out.println(result);
155+
return VoidType.NOTHING;
156+
}
157+
}).fail(new Callbacks.FailureCallBack() {
158+
@Override
159+
public VoidType call(Exception reason) {
160+
System.out.println(reason.getMessage());
161+
return VoidType.NOTHING;
162+
}
163+
});
164+
165+
//now wait sometimes to give some time to finish tasks
166+
Thread.wait(1000);
122167
```

0 commit comments

Comments
 (0)