Spec-Zone.ru › Dart 2

dart:core

абстрактный метод attach

void attach(
  1. Object value,
  2. T finalizationToken,
  3. {Object? detach}
)

Привязывает этот финализатор к value.

Когда value перестанет быть доступным программе, но при этом останется привязанным к этому финализатору, может быть вызван колбэк этого финализатора с аргументом finalizationToken. Колбэк может быть вызван не более одного раза для каждой активной привязки — той, которая не была отменена вызовом Finalizer.detach.

Если указано ненулевое значение null detach, этот объект можно передать в Finalizer.detach, чтобы отменить привязку.

Аргументы value и detach не учитываются при определении доступности этих объектов программе. Оба должны быть объектами, поддерживаемыми в качестве ключа Expando. Это может быть один и тот же объект.

Пример:

class Database {
  // Keeps the finalizer itself reachable, otherwise it might be disposed
  // before the finalizer callback gets a chance to run.
  static final Finalizer<DBConnection> _finalizer =
      Finalizer((connection) => connection.close());

  factory Database.connect() {
    // Wraps the connection in a nice user API,
    // *and* closes connection if the user forgets to.
    final connection = DBConnection.connect();
    final wrapper = Database._fromConnection();
    // Get finalizer callback when `wrapper` is no longer reachable.
    _finalizer.attach(wrapper, connection, detach: wrapper);
    return wrapper;
  }

  Database._fromConnection();

  // Some useful methods.
}

К одному и тому же токену финализации можно привязать несколько объектов, а финализатор можно привязать к одному и тому же объекту несколько раз — с разными или одинаковыми токенами финализации.

Реализация

void attach(Object value, T finalizationToken, {Object? detach});

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/Finalizer/attach.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API