ChangeFeedPullModelIterator interface
Используйте Items.getChangeFeedIterator() для возврата итератора, который может выполнять итерацию по всем изменениям ключа секции, диапазона веб-каналов или всего контейнера.
Свойства
| has |
Всегда возвращает значение true, changefeed — это бесконечный поток. |
Методы
| get |
Возвращает асинхронный итератор, который даст результаты канала изменений. пример Получение канала изменений для всего контейнера с этого момента
|
| read |
Возвращает следующий набор результатов для канала изменений. пример
|
Сведения о свойстве
hasMoreResults
Всегда возвращает значение true, changefeed — это бесконечный поток.
hasMoreResults: boolean
Значение свойства
boolean
Сведения о методе
getAsyncIterator()
Возвращает асинхронный итератор, который даст результаты канала изменений.
пример
Получение канала изменений для всего контейнера с этого момента
import { CosmosClient, ChangeFeedStartFrom } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const options = { changeFeedStartFrom: ChangeFeedStartFrom.Now() };
for await (const results of container.items.getChangeFeedIterator(options).getAsyncIterator()) {
// Process result
for (const resource of results.result) {
console.log(resource);
}
}
function getAsyncIterator(): AsyncIterable<ChangeFeedIteratorResponse<(T & Resource)[]>>
Возвращаемое значение
AsyncIterable<ChangeFeedIteratorResponse<(T & Resource)[]>>
readNext()
Возвращает следующий набор результатов для канала изменений.
пример
import {
CosmosClient,
PartitionKeyDefinitionVersion,
PartitionKeyKind,
ChangeFeedStartFrom,
} from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const containerDefinition = {
id: "Test Database",
partitionKey: {
paths: ["/name", "/address/zip"],
version: PartitionKeyDefinitionVersion.V2,
kind: PartitionKeyKind.MultiHash,
},
};
const { container } = await database.containers.createIfNotExists(containerDefinition);
const partitionKey = "some-partition-Key-value";
const options = {
changeFeedStartFrom: ChangeFeedStartFrom.Beginning(partitionKey),
};
const iterator = container.items.getChangeFeedIterator(options);
while (iterator.hasMoreResults) {
const response = await iterator.readNext();
// process this response
}
function readNext(): Promise<ChangeFeedIteratorResponse<(T & Resource)[]>>
Возвращаемое значение
Promise<ChangeFeedIteratorResponse<(T & Resource)[]>>