# generaltranslation: General Translation Core SDK: awaitJobs
URL: https://generaltranslation.com/it/docs/core/class/methods/translation/await-jobs.mdx
---
title: awaitJobs
description: Riferimento API per il metodo awaitJobs, che esegue il polling e attende il completamento dei job di traduzione
---
## Panoramica
Il metodo `awaitJobs` verifica periodicamente lo stato dei job di traduzione e viene risolto quando tutti i processi hanno raggiunto uno stato terminale (`completed`, `failed` o `unknown`) oppure allo scadere del timeout. Si tratta di un pratico wrapper di [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) che gestisce automaticamente il polling.
```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('Tutti i job completati');
} else {
console.log('Timeout — alcuni job ancora in corso');
}
```
`complete: true` significa che tutti i job hanno raggiunto uno stato terminale — **non** che siano tutti andati a buon fine. Verifica i singoli valori di `job.status` per confermarne l'esito positivo.
## Riferimento
### Parametri
| Name | Type | Description |
| --------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `enqueueResult` | [`EnqueueFilesResult`](/docs/core/types/enqueue-files-options) | L'oggetto risultante restituito da [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) |
| `options?` | `AwaitJobsOptions` | Configurazione di polling opzionale |
#### AwaitJobsOptions
| Nome | Tipo | Predefinito | Descrizione |
| ------------------------- | -------- | -------------- | ------------------------------------------------------------- |
| `pollingIntervalSeconds?` | `number` | `5` | Frequenza con cui controllare gli aggiornamenti di stato |
| `timeoutSeconds?` | `number` | `600` (10 min) | Tempo massimo di attesa prima di restituire gli stati attuali |
### Restituisce
`Promise`
```typescript
type AwaitJobsResult = {
/** Se tutti i job hanno raggiunto uno stato terminale (non necessariamente di successo). */
complete: boolean;
jobs: JobResult[];
};
type JobResult = {
jobId: string;
status: JobStatus;
error?: { message: string };
};
```
| Proprietà | Tipo | Descrizione |
| --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| `complete` | `boolean` | `true` se non ci sono più job in corso; `false` se è stato raggiunto il timeout |
| `jobs` | `JobResult[]` | Stato finale di ogni job |
| `jobs[].jobId` | `string` | Identificatore del job |
| `jobs[].status` | [`JobStatus`](/docs/core/class/methods/translation/check-job-status#jobstatus) | Stato finale: `'completed'`, `'failed'` o `'unknown'` |
| `jobs[].error?` | `{ message: string }` | Dettagli dell'errore se il job non è andato a buon fine |
***
## Esempio
### Metti in coda e attendi le traduzioni
```typescript title="index.ts" copy
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// Carica e accoda
const { uploadedFiles } = await gt.uploadSourceFiles(files, {
sourceLocale: 'en',
});
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
sourceLocale: 'en',
targetLocales: ['es', 'fr', 'de'],
});
// Attendi il completamento di tutti i job (polling ogni 10s, timeout dopo 5 min)
const result = await gt.awaitJobs(enqueueResult, {
pollingIntervalSeconds: 10,
timeoutSeconds: 300,
});
if (!result.complete) {
console.warn('Alcuni job non sono stati completati in tempo');
}
// Controlla i risultati individuali
for (const job of result.jobs) {
if (job.status === 'completed') {
console.log(`Job ${job.jobId} completato con successo`);
} else if (job.status === 'failed') {
console.error(`Job ${job.jobId} fallito: ${job.error?.message}`);
}
}
```
***
## Note
* Sostituisce i loop di polling manuali — non è necessario chiamare `checkJobStatus` manualmente in un loop `while`
* I job che l'API non trova vengono considerati con stato `'unknown'`
* Se `enqueueResult` non contiene job, il metodo si risolve immediatamente con `{ complete: true, jobs: [] }`
* Il timeout è un limite approssimativo — il metodo completerà il polling corrente prima di risolversi
## Passaggi successivi
* Vedi [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) per avviare i job di traduzione
* Vedi [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) per controllare manualmente lo stato
* Vedi [`downloadFile`](/docs/core/class/methods/translation/download-file) per scaricare le traduzioni completate