# QPromise::tap
Since: 0.2.0
QPromise<T>::tap(Function handler) -> QPromise<T>
This handler
allows to observe the value of the input
promise, without changing the propagated
value. The output
promise will be resolved with the same value as the input
promise (the handler
returned value will be ignored). However, if handler
throws, output
is rejected with the new
exception. Unlike finally
, this handler is not called for rejections.
QPromise<int> input = {...}
auto output = input.tap([](int res) {
log(res);
}).then([](int res) {
// {...}
});
If handler
returns a promise (or QFuture), the output
promise is delayed until the returned
promise is resolved and under the same conditions: the delayed value is ignored, the error
transmitted to the output
promise.