Commit Graph

8 Commits

Author SHA1 Message Date
Simon Brunel
d3b69f1248 Split QPromise tests per feature in separate .pro 2017-10-26 23:03:16 +02:00
Simon Brunel
b47ca0569e Implement QPromise::delay(msec)
This method returns a promise that will be fulfilled with the same value as the `input` promise and after at least `msec` milliseconds. If the `input` promise is rejected, the `output` promise is immediately rejected with the same reason.
2017-08-24 18:28:44 +02:00
Simon Brunel
c55fa03e7b Implement QPromise::tap(handler)
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.
2017-08-23 21:06:59 +02:00
Simon Brunel
cba11e6341 Add qpm package.json and docs 2017-06-10 11:27:38 +02:00
Simon Brunel
81625e1964 Add multithreading support
Make QPromise thread safe but also ensure that continuation lambdas (then/fail/finally) are called in the thread of the promise instance they are attached to.
2017-06-04 22:22:26 +02:00
Simon Brunel
2d9961de82 Add usage and API documentation (basic) 2017-06-04 10:34:26 +02:00
Simon Brunel
a8ad3619b9 Setup Travis CI builds and code coverage
Built with Qt 5.4.2/GCC 4.8.4, code coverage with LCOV 1.13 and reported to Codecov.
2017-05-26 14:39:11 +02:00
Simon Brunel
6a642446df Initial implementation 2017-05-14 19:03:01 +02:00