Execute a second PNFuture after this PNFuture completes successfully, and return the original value of this PNFuture after the second PNFuture completes successfully.
Failures are propagated to the resulting PNFuture.