# generaltranslation: General Translation Core SDK: awaitJobs URL: https://generaltranslation.com/es/docs/core/class/methods/translation/await-jobs.mdx --- title: awaitJobs description: Referencia de la API del método awaitJobs para consultar y esperar a que se completen los trabajos de traducción --- ## Resumen El método `awaitJobs` realiza un sondeo periódico del estado de los trabajos de traducción y se completa cuando todos los trabajos han alcanzado un estado terminal (`completed`, `failed` o `unknown`) o cuando se alcanza el tiempo de espera. Es un contenedor práctico sobre [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) que gestiona el sondeo automáticamente. ```typescript const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' }); const enqueueResult = await gt.enqueueFiles(uploadedFiles, { sourceLocale: 'en', targetLocales: ['es', 'fr'], }); const result = await gt.awaitJobs(enqueueResult); if (result.complete) { console.log('Todos los trabajos finalizados'); } else { console.log('Tiempo de espera agotado — algunos trabajos aún en curso'); } ``` `complete: true` significa que todos los trabajos alcanzaron un estado terminal; **no** significa que todos hayan finalizado con éxito. Revisa los valores individuales de `job.status` para confirmar que se completaron correctamente. ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | --------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | `enqueueResult` | [`EnqueueFilesResult`](/docs/core/types/enqueue-files-options) | El objeto de resultado que devuelve [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) | | `options?` | `AwaitJobsOptions` | Configuración opcional de sondeo | #### AwaitJobsOptions | Nombre | Tipo | Predeterminado | Descripción | | ------------------------- | -------- | -------------- | --------------------------------------------------------------- | | `pollingIntervalSeconds?` | `number` | `5` | Frecuencia con la que se realiza el sondeo para obtener actualizaciones de estado | | `timeoutSeconds?` | `number` | `600` (10 min) | Tiempo máximo de espera antes de devolver los estados actuales | ### Devuelve `Promise` ```typescript type AwaitJobsResult = { /** Si todos los trabajos alcanzaron un estado terminal (no necesariamente exitoso). */ complete: boolean; jobs: JobResult[]; }; type JobResult = { jobId: string; status: JobStatus; error?: { message: string }; }; ``` | Propiedad | Tipo | Descripción | | --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | | `complete` | `boolean` | `true` si no queda ningún trabajo en curso; `false` si se alcanzó el tiempo de espera | | `jobs` | `JobResult[]` | Estado final de cada trabajo | | `jobs[].jobId` | `string` | Identificador del trabajo | | `jobs[].status` | [`JobStatus`](/docs/core/class/methods/translation/check-job-status#jobstatus) | Estado final: `'completed'`, `'failed'` o `'unknown'` | | `jobs[].error?` | `{ message: string }` | Detalles del error si el trabajo falló | *** ## Ejemplo ### Encolar y esperar a que se completen las traducciones ```typescript title="index.ts" copy import { GT } from 'generaltranslation'; const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key', }); // Cargar y encolar const { uploadedFiles } = await gt.uploadSourceFiles(files, { sourceLocale: 'en', }); const enqueueResult = await gt.enqueueFiles(uploadedFiles, { sourceLocale: 'en', targetLocales: ['es', 'fr', 'de'], }); // Esperar a que todos los trabajos terminen (sondeo cada 10s, tiempo de espera de 5 min) const result = await gt.awaitJobs(enqueueResult, { pollingIntervalSeconds: 10, timeoutSeconds: 300, }); if (!result.complete) { console.warn('Algunos trabajos no terminaron a tiempo'); } // Verificar resultados individuales for (const job of result.jobs) { if (job.status === 'completed') { console.log(`El trabajo ${job.jobId} se completó con éxito`); } else if (job.status === 'failed') { console.error(`El trabajo ${job.jobId} falló: ${job.error?.message}`); } } ``` *** ## Notas * Reemplaza los bucles de sondeo manuales: no necesitas llamar a `checkJobStatus` dentro de un bucle `while` * Los trabajos que la API no encuentra se consideran en estado `'unknown'` * Si `enqueueResult` no contiene trabajos, el método se resuelve inmediatamente con `{ complete: true, jobs: [] }` * El tiempo de espera es un límite aproximado: el método terminará el sondeo actual antes de resolverse ## Próximos pasos * Consulta [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) para iniciar trabajos de traducción * Consulta [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) para consultar manualmente el estado * Consulta [`downloadFile`](/docs/core/class/methods/translation/download-file) para descargar las traducciones completadas