I'm new rxjava2.when i read book about it and i have some that i don't understand about operator delay.

> 
> We can postpone emissions using the delay() operator. It will hold any received emissions
>  and delay each one for the specified time period. If we wanted to delay emissions by three
>  seconds, we could do it like this:
> 
> 
> 

```
 public static void main(String[] args) {

    Observable.just("Alpha", "Beta", "Gamma" ,"Delta",
            "Epsilon")
            .delay(3000, TimeUnit.SECONDS)
            .subscribe(s -> System.out.println("Received: " + s));

    sleep(3000);
}

public static void sleep(long millis) {
    try {
        Thread.sleep(millis);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

}

```

The output of the preceding code snippet is as follows:
 Beta
 Alpha
 Gamma
 Delta
 Epsilon 

I think that output is only "Alpha", because they said 

> 
> Because delay() operates on a different scheduler (such as Observable.interval()), we
>  need to leverage a sleep() method to keep the application alive long enough to see this
>  happen. Each emission will be delayed by three seconds
> 
> 
> 

with delay 3s, i think there is a emission as "Alpha",but it emit all of emissions in observable.