Compartilhar via


CustomFunctions.StreamingInvocation interface

Fornece informações sobre a invocação de uma função personalizada de transmissão em fluxo. Uma função personalizada de transmissão em fluxo pode fornecer resultados que podem ser alterados ao longo do tempo.

Chame setResult() uma ou mais vezes para fornecer o resultado em vez de devolver um resultado da função.

Extends

Propriedades

setResult

Defina o resultado para a função personalizada. Pode ser chamado mais de uma vez.

Detalhes da propriedade

setResult

Defina o resultado para a função personalizada. Pode ser chamado mais de uma vez.

setResult: (value: ResultType | Error) => void;

Valor da propriedade

(value: ResultType | CustomFunctions.Error) => void

Comentários

[ Conjunto de API: CustomFunctionsRuntime 1.1 ]

Exemplos

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/16-custom-functions/streaming-function.yaml

/** @CustomFunction 
 * @description Increments the cell with a given amount at a specified interval in milliseconds.
 * @param {number} amount - The amount to add to the cell value on each increment.
 * @param {number} interval - The time in milliseconds to wait before the next increment on the cell.
 * @param {CustomFunctions.StreamingInvocation<number>} invocation - Parameter to send results to Excel
 *     or respond to the user canceling the function.
 * @returns An incrementing value.
 */
function increment(amount: number, interval: number, invocation: CustomFunctions.StreamingInvocation<number>): void {
  let result = 0;
  const timer = setInterval(() => {
    result += amount;
    invocation.setResult(result);
  }, interval);

  invocation.onCanceled = () => {
    clearInterval(timer);
  }
}