当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Finalizer.attach用法及代码示例


dart:core 库中Finalizer.attach 方法的用法介绍如下。

用法:

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

将此终结器附加到 value

value 不再可供程序访问时,同时仍具有此终结器的附件,此终结器may 的回调将使用finalizationToken 作为参数调用。每个活动附件最多可以调用一次回调,未通过调用 Finalizer.detach 分离的附件。

如果提供了非 null detach 值,则可以将该对象传递给 Finalizer.detach 以再次删除附件。

valuedetach 参数不计入程序可以访问的那些对象。两者都必须是作为Expando 键支持的对象。它们可能是same 对象。

例子:

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

可以使用相同的终结令牌附加多个对象,并且终结器可以使用不同或相同的终结令牌多次附加到同一对象。

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 attach method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。