Spec-Zone.ru › Dart 2

dart:core

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

void detach(
  1. Object detach
)

Отсоединяет этот финализатор от значений, присоединённых с помощью detach.

Удаляется каждое присоединение между этим финализатором и значением, созданное вызовом attach с объектом detach в качестве аргумента detach.

Если финализатор присоединялся к одному и тому же значению несколько раз с разными ключами отсоединения, удаляются только те присоединения, при создании которых использовался detach.

После отсоединения присоединение не приведёт к вызову обратных вызовов, если объект станет недоступен.

Пример:

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());

  final DBConnection _connection;

  Database._fromConnection(this._connection);

  void close() {
    // User requested close.
    _connection.close();
    // Detach from finalizer, no longer needed.
    // Was attached using this object as `detach` token.
    _finalizer.detach(this);
  }

  // Some useful methods.
}

Реализация

void detach(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/detach.html

Spec-Zone.ru

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