Skip to content

Commit f4ece35

Browse files
committed
add Future.WaitChan() and Future.Err()
resolves #86
1 parent 4d60196 commit f4ece35

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

request.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,3 +435,25 @@ func (fut *Future) GetTyped(result interface{}) error {
435435
fut.err = fut.resp.decodeBodyTyped(result)
436436
return fut.err
437437
}
438+
439+
var closedChan = make(chan struct{})
440+
441+
func init() {
442+
close(closedChan)
443+
}
444+
445+
// WaitChan returns channel which becomes closed when response arrived or error occured
446+
func (fut *Future) WaitChan() <-chan struct{} {
447+
if fut.ready == nil {
448+
return closedChan
449+
}
450+
return fut.ready
451+
}
452+
453+
// Err returns error set on Future.
454+
// It waits for future to be set.
455+
// Note: it doesn't decode body, therefore decoding error are not set here.
456+
func (fut *Future) Err() error {
457+
fut.wait()
458+
return fut.err
459+
}

0 commit comments

Comments
 (0)