/delayed_future

⏳ A Dart extension that allows to delay your Futures.

Primary LanguageDartMIT LicenseMIT

delayed_future pub version

⏳ A Dart extension that allows to delay your Futures.

Why?

Sometimes it makes sense to delay your futures. For example, if you're making an API call and showing a loader. The response might come too quick fast.

By making sure that the execution will run for at least a little, like 350 ms, we'll make the loader more noticeable and the UX more convenient.

How to use

Install the package

Add the dependency to pubspec.yaml:

dependencies:
  delayed_future: ^1.0.3

Use it!

// This will use default values from the config.
await anyFuture().delayResult();

await anotherFuture().delayResult(
    // Custom duration!
    duration: const Duration(milliseconds: 150),

    // If throwImmediatelyOnError is true and `anotherFuture` throws an exception,
    // the execution will fail immediately.
    // Otherwise it will run for at least the given time.
    throwImmediatelyOnError: true,
);

// Or use it directly on a function
await anyFuture.delayCall();
await anotherFuture.delayCall(Duration(milliseconds: 500));

Set the default values

You can change the default values of duration and throwImmediatelyOnError like this:

DelayedFuture.duration = const Duration(milliseconds: 500);
DelayedFuture.throwImmediatelyOnError = true;