ZoneDelegate抽象 最终

父区域的改进视图。

此类允许在保留起始区域知识的同时,实现区域方法,以调用父区域的方法。

自定义区域(通过 Zone.forkrunZoned 创建)可以提供区域大多数方法的实现。这与在 Zone 上重写方法类似,但此机制不需要子类化。

自定义区域函数(通过 ZoneSpecification 提供)通常记录或包装其参数,然后使用提供的 ZoneDelegate 将操作委派给其父区域。

虽然区域可以访问其父区域(通过 Zone.parent),但出于以下两个原因建议调用提供的父委托上的方法:

  1. 委托方法额外接受一个 zone 参数,它是操作发起的区域。
  2. 委托调用更高效,因为实现知道如何跳过只会委派给其父级的区域。

构造函数

ZoneDelegate()

属性

hashCode int
此对象的哈希码。
no setterinherited
runtimeType Type
对象的运行时类型的表示。
no setterinherited

方法

createPeriodicTimer(Zone zone, Duration period, void f(Timer timer)) Timer
createTimer(Zone zone, Duration duration, void f()) Timer
errorCallback(Zone zone, Object error, StackTrace? stackTrace) AsyncError?
fork(Zone zone, ZoneSpecification? specification, Map? zoneValues) Zone
handleUncaughtError(Zone zone, Object error, StackTrace stackTrace) → void
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
继承
print(Zone zone, String line) → void
registerBinaryCallback<R, T1, T2>(Zone zone, R f(T1 arg1, T2 arg2)) ZoneBinaryCallback<R, T1, T2>
registerCallback<R>(Zone zone, R f()) ZoneCallback<R>
registerUnaryCallback<R, T>(Zone zone, R f(T arg)) ZoneUnaryCallback<R, T>
run<R>(Zone zone, R f()) → R
runBinary<R, T1, T2>(Zone zone, R f(T1 arg1, T2 arg2), T1 arg1, T2 arg2) → R
runUnary<R, T>(Zone zone, R f(T arg), T arg) → R
scheduleMicrotask(Zone zone, void f()) → void
toString() String
本对象的字符串表示。
继承

操作符

operator ==(Object other) bool
等号操作符。
继承