void _subscribe() { if (widget.future != null) { object callbackIdentity = new object(); _activeCallbackIdentity = callbackIdentity; widget.future.then((object dataIn) => { var data = (T)dataIn; if (_activeCallbackIdentity == callbackIdentity) { setState(() => { _snapshot = AsyncSnapshot <T> .withData(ConnectionState.done, data); }); } }, onError: (Exception error) => { if (_activeCallbackIdentity == callbackIdentity) { setState(() => { _snapshot = AsyncSnapshot <T> .withError(ConnectionState.done, error); }); } return(FutureOr.nil); }); _snapshot = _snapshot.inState(ConnectionState.waiting); } }
AsyncSnapshot <T> afterError(AsyncSnapshot <T> current, object error) { return(AsyncSnapshot <T> .withError(ConnectionState.active, error)); }