搜索插件、代码仓与 APP 分类

插件详情v1.2.0

cancelation_token

该包提供取消令牌的接口以及各种实现(可取消、超时、复合等)。

AndroidiOSLinuxmacOSWebWindows
近 30 天下载
3.2万
喜欢数
2
Pub 分数
160

安装插件

flutter pub add cancelation_token

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

The cancelation_token package offers a clean interface for managing cancellation in asynchronous operations, supporting various implementations like cancelable tasks, timeouts, and composite tokens. It enables developers to gracefully handle operation cancellation across platforms, improving responsiveness and resource management in Flutter apps. Ideal for scenarios involving network requests, timers, or long-running computations that may need to be interrupted. The package is lightweight and designed for use with Dart's async/await patterns.

适合场景

  • Managing cancellable network requests
  • Implementing timeout mechanisms
  • Coordinating multiple async operations
  • Handling user-initiated task cancellation
  • Controlling long-running background processes

主要特点

  • Support for cancelable futures
  • Timeout-based cancellation
  • Composite token grouping
  • Cross-platform compatibility
  • Simple API integration

适合对象

  • Developers needing fine-grained control over async operations
  • Apps with frequent network or timer usage
  • State management systems requiring cancellation support
  • Teams prioritizing clean async code structure

使用建议

  • Requires understanding of async/await flow
  • May add complexity for simple use cases
  • Not suitable for non-async operations
  • Limited documentation beyond basic examples
  • Best used with other state management solutions

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

cancelation_token

This package provides an interface for cancelation tokens as well as various implementations:

  • CancelableToken which can be canceled programmatically;
  • CompositeToken which is canceled when any or all tokens are canceled;
  • TimeoutToken which is canceled after a timeout period.

Example

Cancel a long-running execution after a timeout.

import 'package:cancelation_token/cancelation_token.dart';

void main() async {
  final timeout = Duration(seconds: 5);
  final errorOnTimeout = CanceledException.withStackTrace('Too long!');
  final token = TimeoutToken(timeout, errorOnTimeout);
  token.ensureStarted();

  try {
    await longProcess(token);
  } on CanceledException catch (ex, st) {
    print(ex.message);
    print(ex.stackTrace);
    print(st);
  }
}

Future<void> longProcess(CancelationToken token) async {
  // very long indeed!
  while (true) {
    token.throwIfCanceled();
    await Future.delayed(const Duration(milliseconds: 100));
  }
}

所属分类

源码仓库

使用此插件的项目

暂无相关数据。

所在榜单