# 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