Wha't the difference between Channel#write(msg) and Channel#write(msg, promise)?

netty

Solution

ChannelPromise is a special writable ChannelFuture which get notified once the IO operation completes.

the method `Channel#write(msg)` will delegate to `Channel#write(msg, promise)` with a `DefaultChannelPromise` created by netty as the second parameter

Problem

I'm reading the Javadoc of Channel of Netty: http://netty.io/4.0/api/io/netty/channel/Channel.html But it doesn't explain anything about the difference between `Channel#write(msg)` and `Channel#write(msg, promise)`. What's the purpose of the `promise` in the 2nd method?

Original source