Lista de operaciones estatales

El proveedor de estado dispone de operaciones de lista para almacenar el estado.

Nota: Estos ejemplos utilizan vcr.getInstanceState() para el estado compartido por todas las réplicas. Para el estado por conversación, utilice vcr.createSessionWithId(id) con un UUID determinista del contexto de la solicitud (por ejemplo, conversation_uuid de una devolución de llamada de voz). No utilice nunca vcr.createSession() a escala mundial - véase Proveedor estatal: Alcance de la sesión Para más información.

Empujar elementos al inicio de la lista

Utilizando un nombre de lista, puede añadir un elemento a una lista al principio.

Firma del método

listPrepend<T>(list: string, value: T)

Insertar elementos al principio de la lista

await state.listPrepend("list", "bar");
await state.listPrepend('list', 'bar')

Empujar elementos al final de la lista

Si utilizas el nombre de una lista, puedes añadir un elemento al final de la misma.

Firma del método

listAppend<T>(list: string, value: T)

Insertar elementos al final de la lista

await state.listAppend("list", "foo");
await state.listAppend('list', 'foo')

Insertar un elemento en una posición relativa

Puede añadir un elemento a una lista antes o después de un elemento existente. La dirección before booleano se utiliza para decidir colocar el elemento antes de (true) o después (false) el pivot valor (el elemento existente).

Firma del método

listInsert<T>(list: string, before: boolean, pivot: T, value: T)

Inserción relativa de un elemento

await state.listInsert('list', false, 'foo', 'bar');
await state.listInsert('list', false, 'foo', 'bar')

Sobrescribir el valor de un elemento en un índice específico

Puede sobrescribir el valor de un elemento en un índice específico. Es necesario que ya exista un valor en el índice position especificado.

Firma del método

listSet<T>(list: string, position: number, value: T)

Sobrescribir el valor de un elemento en un índice específico

await state.listSet('list', 0, 'foo');
await state.listSet('list', 0, 'foo')

Obtener un elemento en un índice específico

Puedes obtener un elemento en un índice concreto.

Firma del método

listIndex<T>(list: string, position: number)

Obtener un elemento en un índice específico

const element = await state.listIndex('list', 0);
element = await state.listIndex('list', 0)

Obtener la longitud de una lista

Si utilizas el nombre de una lista, puedes obtener su longitud.

Firma del método

listLength(list: string)

Obtener la longitud de una lista

const listLength = await state.listLength("list");
listLength = await state.state.listLength('list')

Obtener los elementos de una lista con un rango

Si utilizas el nombre de una lista y un rango, puedes obtener los elementos que se encuentran en el rango especificado.

Firma del método

listRange<T>(list: string, startPos: number, endPos: number)

Obtener los elementos de una lista con un rango

const elements = await state.listRange("list", 0, 2);
elements = await state.listRange('list', 0, 2)

Eliminar elementos de la lista

Puede eliminar elementos de una lista especificando un valor. Opcionalmente, puede proporcionar un recuento para controlar cuántos elementos se eliminan si hay duplicados.

Firma del método

listRemove<T>(list: string, value: T, count?: number)

Eliminar elementos de la lista

await state.listRemove('list', 'foo');
await state.listRemove('list', 'foo')

Elementos emergentes al inicio de la lista

Puedes extraer elementos del principio de una lista y que te sean devueltos. Opcionalmente, puedes pasar un count para hacer saltar más de un elemento a la vez.

Firma del método

listStartPop<T>(list: string, count?: number)

Eliminar elementos del principio de la lista

await state.listStartPop("list");
await state.listStartPop('list')

Elementos pop al final de la lista

Puede sacar elementos del final de una lista y hacer que se los devuelvan.

Firma del método

listEndPop<T>(list: string, count?: number)

Eliminar elementos al final de la lista

await state.listEndPop("list");
await state.listEndPop('list', 'bar')

Recortar una lista

Puede eliminar elementos de una lista especificando un intervalo. Los elementos eliminados no te será devuelto.

Firma del método

listTrim<T>(list: string, startPos: number, endPos: number)

Recortar una lista

await state.listTrim("list", 0, 1);
await state.listTrim('list', 0, 1)