# 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.

Espera hasta que todos los trabajos estén en estado `completed`, `failed` o `unknown`, o hasta que se agote el tiempo de espera. Admite trabajos de traducción y trabajos de configuración inicial.

## 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'`.
* **Plazo límite.** Cada solicitud de estado tiene un tiempo de espera máximo de 60 segundos, que se acorta al tiempo total restante. Cuando se agota el tiempo de espera, se devuelven los últimos estados conocidos con `complete: false`; esos trabajos aún pueden estar en cola, en procesamiento o en estado desconocido. Las implementaciones personalizadas de fetch deben respetar la cancelación para detenerse de inmediato.
* **Errores.** Los errores de estado que se producen antes del plazo límite provocan el rechazo de la promesa. Los que se producen después del plazo límite devuelven, en su lugar, resultados incompletos. Detener el sondeo no cancela los trabajos remotos.
* **Entrada vacía.** Tras validar las credenciales y el ID del Project, una entrada vacía se resuelve 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 de `generaltranslation/types`. A diferencia de las [opciones de sondeo de la API](/docs/platform/core/reference/api-client#job-polling), las opciones de la clase no exponen `onPoll` ni una señal proporcionada por quien realiza la llamada:

| 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 más reciente; puede seguir siendo `'queued'` o `'processing'` al agotarse el tiempo de espera. | [`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'`.
* Si la entrada está vacía, se devuelve `{ complete: true, jobs: [] }` tras validar la autenticación.
* Al agotarse el tiempo de espera, se devuelven los últimos estados aceptados, que no son necesariamente estados terminales; los resultados de sondeo que lleguen tarde se descartan.

## Sitemap

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