Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
OfficeJS: error de tamaño de pila de llamadas de rango máximo

Estoy usando OfficeJS en un complemento de Word y veo un comportamiento extraño con respecto a un error que aparece en la consola con el registro "Error de tamaño de pila de llamadas de rango máximo".

El siguiente código funciona para casi todos los documentos. Pero para documentos específicos, parece que file.getSliceAsync falla y provoca el error. Sin embargo, al realizar pruebas, algunos de nuestros desarrolladores pueden reproducir el error y otros no. Funciona el 100% del tiempo o el 0% del tiempo para un solo desarrollador.

Hemos intentado borrar cachés, pero sin éxito. No hay nada que sobresalga en los documentos que fallan aquí.

Parece que se trata de un error en la biblioteca de OfficeJS, pero no estoy seguro de que haya alguna solución.

¿Algunas ideas?

Código a continuación:

 static async getFileContent(): Promise<number[]> { console.log('Starting file content retrieval'); return new Promise((resolve, reject) => { return Office.context.document.getFileAsync( Office.FileType.Compressed, async (result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { const file: Office.File = result.value; console.log('Slice count: ' + file.sliceCount); // Get all file slices const fileSlicePromises: Promise<number[]>[] = [ ...Array(file.sliceCount).keys(), ].map((counter) => WordDocumentService.getFileSlice(file, counter)); console.log('fileSlices length: ' + fileSlicePromises.length); // Combine file slices into a single file and then close the file const dataSlices: number[][] = await Promise.all(fileSlicePromises).finally( () => WordDocumentService.closeOfficeFile(file) ); console.log('Concatenating data'); return resolve([].concat(...dataSlices)); } else { return reject(`Failed to get file content: ${result?.error?.message}`); } } ); }); } static getFileSlice(file: Office.File, sliceIndex: number): Promise<number[]> { console.log('Getting file slice: ' + sliceIndex); return new Promise((resolve, reject) => { return file.getSliceAsync(sliceIndex, (result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { return resolve(result.value.data); } else { return reject( `Failed to get file slice ${sliceIndex} from file: ${result?.error?.message}` ); } }); }); } static closeOfficeFile(file: Office.File): Promise<void> { console.log('Closing office file'); return new Promise((resolve, reject) => { return file.closeAsync((result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { return resolve(); } else { return reject(`Failed to close file: ${result?.error?.message}`); } }); }); }
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda