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.18.5/dart-core/Finalizer/detach.html

Spec-Zone.ru

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