# 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