fetchResults method
Fetch results based on options.fetchPolicy
by default.
Optionally provide a fetchPolicy
which will override the
default options.fetchPolicy
, just for this request.
Will startPolling if options.pollInterval
is set
Implementation
MultiSourceResult<TParsed> fetchResults({FetchPolicy? fetchPolicy}) {
final fetchOptions = fetchPolicy == null
? options
: options.copyWithFetchPolicy(fetchPolicy);
final MultiSourceResult<TParsed> allResults =
queryManager.fetchQueryAsMultiSourceResult(queryId, fetchOptions);
latestResult ??= allResults.eagerResult;
if (allResults.networkResult == null) {
// This path is only possible for cacheFirst and cacheOnly fetch policies.
lifecycle = QueryLifecycle.completed;
} else {
// if onData callbacks have been registered,
// they are waited on by default
lifecycle = _onDataCallbacks.isNotEmpty
? QueryLifecycle.sideEffectsPending
: QueryLifecycle.pending;
}
if (fetchOptions.pollInterval != null &&
fetchOptions.pollInterval! > Duration.zero) {
startPolling(fetchOptions.pollInterval);
}
return allResults;
}