Estoy tratando de escribir una función para hacer la transformación de los archivos que no arrojan ninguna excepción como un método a continuación. Veo el error ESLint - "Eslint: Promesa devuelta en el argumento de la función donde se esperaba una devolución nula". ¿Qué se puede hacer para arreglar este eslint?
Tenga en cuenta que omitiríamos los archivos que generarán un error. Sin embargo, esos están registrados apropiadamente.
export async function createDataFromFiles(inputFiles: File[]): Promise<Data[]> { const result: Data = []; inputFiles.forEach( async (file) => { const imageData = new DataView(await file.arrayBuffer()); const blobUrl = URL.createObjectURL(new Blob([imageData])); try { const dimension = await getDimensionsFromImageUrl(blobUrl); answer.push({ imageData, dimension }); } finally { URL.revokeObjectURL(blobUrl); } } ); return Promise.all(answer); }Esto se debe a la firma de Array.forEach :
forEach(callbackfn: (value: undefined, index: number, array: undefined[]) => void): void .
callbackFn tiene el tipo void , pero cuando se usa async , la función devuelve implícitamente una Promise .
Puede evitar esta advertencia utilizando un bucle ordinario for...of :
export async function createDataFromFiles(inputFiles: File[]): Promise<Data[]> { const result: Data = []; for (const file of inputFiles) { const imageData = new DataView(await file.arrayBuffer()); const blobUrl = URL.createObjectURL(new Blob([imageData])); try { const dimension = await getDimensionsFromImageUrl(blobUrl); answer.push({ imageData, dimension }); } finally { URL.revokeObjectURL(blobUrl); } } return Promise.all(answer); }