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)