# General Translation Platform: awaitJobs
URL: https://generaltranslation.com/es/docs/platform/core/reference/gt-class-methods/translation/await-jobs.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Sondea los trabajos de traducción en cola hasta que se completen, fallen o se agote el tiempo de espera. Referencia de la API para awaitJobs.

Sondea el estado de los trabajos de traducción y se resuelve cuando cada trabajo alcanza un estado terminal (`completed`, `failed` o `unknown`) o cuando se agota el tiempo de espera. Es un contenedor práctico sobre [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) que se encarga del sondeo por ti.

## Descripción general [#overview]

Pasa el resultado de [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) o una lista de ID de trabajo a `awaitJobs`, opcionalmente con opciones de sondeo. Se resuelve con el estado final de cada trabajo.

```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('All jobs finished');
} else {
  console.log('Timed out — some jobs still in progress');
}
```

Firma:

```typescript
awaitJobs(
  jobs: EnqueueFilesResult | string[],
  options?: AwaitJobsOptions
): Promise<AwaitJobsResult>
```

*Advertencia: `complete: true` significa que todos los trabajos alcanzaron un estado terminal; **no** significa que todos los trabajos se hayan completado con éxito. Verifica el `job.status` de cada trabajo para confirmar si tuvo éxito.*

## Cómo funciona [#how-it-works]

* **Sondeo automático.** Sustituye los bucles de sondeo manual: no necesitas llamar a [`checkJobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status) dentro de un bucle `while`.
* **Estados terminales.** Se resuelve cuando cada trabajo está en `completed`, `failed` o `unknown`. Los trabajos que la API no puede encontrar se tratan como `'unknown'`.
* **Tiempo de espera de best effort.** El tiempo de espera es un límite de best effort: el método termina el sondeo en curso antes de resolverse.
* **Entrada vacía.** Si el resultado de encolado no contiene ningún trabajo o la lista de ID de trabajos está vacía, el método se resuelve de inmediato con `{ complete: true, jobs: [] }`.

## Parámetros [#parameters]

| Parámetro             | Descripción                                                                                                                                                  | Tipo                                                                                             | Opcional   | Por defecto |   |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ---------- | ----------- | - |
| [`jobs`](#jobs)       | El objeto de resultado que devuelve [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) o una lista de ID de trabajo. | [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) | `string[]` | No          | — |
| [`options`](#options) | Configuración del sondeo.                                                                                                                                    | `AwaitJobsOptions`                                                                               | Sí         | —           |   |

### `jobs`

**Tipo** [`EnqueueFilesResult`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files) | `string[]` · **Requerido**

El resultado devuelto por [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files), o los ID de trabajo devueltos por otro flujo de trabajo, como [`setupProject`](/docs/platform/core/reference/gt-class-methods/translation/setup-project). Cuando se pasa un resultado de encolado, su `jobData` identifica los trabajos cuyo estado debe consultarse.

### `options`

**Tipo** `AwaitJobsOptions` · **Opcional**

Configuración de sondeo:

| Campo                    | Descripción                                                               | Tipo     | Opcional | Predeterminado |
| ------------------------ | ------------------------------------------------------------------------- | -------- | -------- | -------------- |
| `pollingIntervalSeconds` | Frecuencia con la que se consulta para obtener actualizaciones de estado. | `number` | Sí       | `5`            |
| `timeoutSeconds`         | Tiempo máximo de espera antes de devolver los estados actuales.           | `number` | Sí       | `600` (10 min) |

## Devuelve [#returns]

**Tipo** `Promise<AwaitJobsResult>`

Se resuelve con un `AwaitJobsResult` que incluye un indicador general y el estado final de cada trabajo:

```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       | Descripción                                                                       | Tipo                                                                                                 |
| --------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `complete`      | `true` si ya no hay trabajos en curso; `false` si se alcanzó el tiempo de espera. | `boolean`                                                                                            |
| `jobs`          | Estado final de cada trabajo.                                                     | `JobResult[]`                                                                                        |
| `jobs[].jobId`  | El identificador del trabajo.                                                     | `string`                                                                                             |
| `jobs[].status` | Estado final: `'completed'`, `'failed'` o `'unknown'`.                            | [`JobStatus`](/docs/platform/core/reference/gt-class-methods/translation/check-job-status#jobstatus) |
| `jobs[].error`  | Detalles del error si el trabajo falló.                                           | `{ message: string }`                                                                                |

## Ejemplos [#examples]

Consultar directamente los ID de trabajo:

```typescript
const result = await gt.awaitJobs(['job-123', 'job-456']);
```

Consulta el resultado de [`enqueueFiles`](/docs/platform/core/reference/gt-class-methods/translation/enqueue-files):

```typescript title="index.ts"
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// Subir 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 (consulta cada 10s, tiempo de espera de 5 min)
const result = await gt.awaitJobs(enqueueResult, {
  pollingIntervalSeconds: 10,
  timeoutSeconds: 300,
});

if (!result.complete) {
  console.warn('Some jobs did not finish in time');
}

// Verificar resultados individuales
for (const job of result.jobs) {
  if (job.status === 'completed') {
    console.log(`Job ${job.jobId} succeeded`);
  } else if (job.status === 'failed') {
    console.error(`Job ${job.jobId} failed: ${job.error?.message}`);
  }
}
```

## Notas [#notes]

* Los trabajos que la API no encuentra se consideran de estado `'unknown'`.
* Un resultado de encolado vacío o una lista de ID de trabajo vacía se resuelve inmediatamente con `{ complete: true, jobs: [] }`.
* El tiempo de espera es un límite best effort: el método completa el sondeo actual antes de resolverse.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
