Partager via


QueryIterator class

Représente un objet QueryIterator, une implémentation de réponse de flux ou de requête qui permet de parcourir et d’itérer la réponse dans le service de base de données Azure Cosmos DB.

Méthodes

fetchAll()

Récupérez toutes les pages de la requête et retournez un seul FeedResponse.

fetchNext()

Récupérez le lot suivant à partir du flux.

Cela peut extraire ou non d’autres pages du back-end en fonction de vos paramètres et du type de requête. Les requêtes agrégées récupèrent généralement toutes les pages back-end avant de retourner le premier lot de réponses.

getAsyncIterator()

Obtient un itérateur asynchrone qui génère des résultats jusqu’à l’achèvement.

REMARQUE : Les asyncIterators sont une fonctionnalité très nouvelle et vous devrez peut-être utiliser polyfils/etc. pour les utiliser dans votre code.

Si vous utilisez TypeScript, vous pouvez utiliser le polyfill suivant tant que vous ciblez ES6 ou version ultérieure et que vous exécutez sur le nœud 6 ou version ultérieure.

if (!Symbol || !Symbol.asyncIterator) {
  (Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}

Exemple

Itérer sur toutes les bases de données

for await(const { resources: db } of client.databases.readAll().getAsyncIterator()) {
  console.log(`Got ${db} from AsyncIterator`);
}
hasMoreResults()

Déterminez s’il reste des ressources à traiter en fonction de la valeur du jeton de continuation ou des éléments restants sur le lot actuel dans queryIterator.

reset()

Réinitialisez le QueryIterator au début et effacez toutes les ressources qu’il contient

Détails de la méthode

fetchAll()

Récupérez toutes les pages de la requête et retournez un seul FeedResponse.

function fetchAll(): Promise<FeedResponse<T>>

Retours

Promise<FeedResponse<T>>

fetchNext()

Récupérez le lot suivant à partir du flux.

Cela peut extraire ou non d’autres pages du back-end en fonction de vos paramètres et du type de requête. Les requêtes agrégées récupèrent généralement toutes les pages back-end avant de retourner le premier lot de réponses.

function fetchNext(): Promise<FeedResponse<T>>

Retours

Promise<FeedResponse<T>>

getAsyncIterator()

Obtient un itérateur asynchrone qui génère des résultats jusqu’à l’achèvement.

REMARQUE : Les asyncIterators sont une fonctionnalité très nouvelle et vous devrez peut-être utiliser polyfils/etc. pour les utiliser dans votre code.

Si vous utilisez TypeScript, vous pouvez utiliser le polyfill suivant tant que vous ciblez ES6 ou version ultérieure et que vous exécutez sur le nœud 6 ou version ultérieure.

if (!Symbol || !Symbol.asyncIterator) {
  (Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}

Exemple

Itérer sur toutes les bases de données

for await(const { resources: db } of client.databases.readAll().getAsyncIterator()) {
  console.log(`Got ${db} from AsyncIterator`);
}
function getAsyncIterator(): AsyncIterable<FeedResponse<T>>

Retours

AsyncIterable<FeedResponse<T>>

hasMoreResults()

Déterminez s’il reste des ressources à traiter en fonction de la valeur du jeton de continuation ou des éléments restants sur le lot actuel dans queryIterator.

function hasMoreResults(): boolean

Retours

boolean

true s’il existe d’autres éléments à traiter dans QueryIterator.

reset()

Réinitialisez le QueryIterator au début et effacez toutes les ressources qu’il contient

function reset()