mirror of
https://github.com/simonbrunel/qtpromise.git
synced 2025-07-05 16:55:23 +08:00
std::chrono overloads for .timeout() and .delay() (#30)
Add convenience overloads accepting durations from the C++ Standard Library.
This commit is contained in:
@ -20,3 +20,31 @@ auto output = input.delay(2000).then([](int res) {
|
||||
// called 2 seconds after `input` is fulfilled
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Since: 0.6.0*
|
||||
|
||||
```cpp
|
||||
QPromise<T>::delay(std::chrono::milliseconds msec) -> QPromise<T>
|
||||
```
|
||||
|
||||
This is a convenience overload accepting [durations from the C++ Standard Library](https://en.cppreference.com/w/cpp/chrono/duration).
|
||||
|
||||
```cpp
|
||||
QPromise<int> input = {...}
|
||||
auto output = input.delay(std::chrono::seconds{2}).then([](int res) {
|
||||
// called 2 seconds after `input` is fulfilled
|
||||
});
|
||||
```
|
||||
|
||||
C++14 alternative:
|
||||
|
||||
```cpp
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
QPromise<int> input = {...}
|
||||
auto output = input.delay(2s).then([](int res) {
|
||||
// called 2 seconds after `input` is fulfilled
|
||||
});
|
||||
```
|
||||
|
@ -25,3 +25,39 @@ auto output = input.timeout(2000)
|
||||
// operation timed out!
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Since: 0.6.0*
|
||||
|
||||
```cpp
|
||||
QPromise<T>::timeout(std::chrono::milliseconds msec, any error = QPromiseTimeoutException) -> QPromise<T>
|
||||
```
|
||||
|
||||
This is a convenience overload accepting [durations from the C++ Standard Library](https://en.cppreference.com/w/cpp/chrono/duration).
|
||||
|
||||
```cpp
|
||||
QPromise<int> input = {...}
|
||||
auto output = input.timeout(std::chrono::seconds{2})
|
||||
.then([](int res) {
|
||||
// operation succeeded within 2 seconds
|
||||
})
|
||||
.fail([](const QPromiseTimeoutException& error) {
|
||||
// operation timed out!
|
||||
});
|
||||
```
|
||||
|
||||
C++14 alternative:
|
||||
|
||||
```cpp
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
QPromise<int> input = {...}
|
||||
auto output = input.timeout(2s)
|
||||
.then([](int res) {
|
||||
// operation succeeded within 2 seconds
|
||||
})
|
||||
.fail([](const QPromiseTimeoutException& error) {
|
||||
// operation timed out!
|
||||
});
|
||||
```
|
||||
|
Reference in New Issue
Block a user