# generaltranslation: General Translation Core SDK: awaitJobs
URL: https://generaltranslation.com/fr/docs/core/class/methods/translation/await-jobs.mdx
---
title: awaitJobs
description: Référence d’API de la méthode awaitJobs pour interroger l’état des tâches de traduction et attendre leur fin
---
## Vue d’ensemble
La méthode `awaitJobs` interroge l’état des tâches de traduction et se résout une fois que toutes les tâches ont atteint un état terminal (`completed`, `failed` ou `unknown`) ou qu’un délai d’expiration est atteint. Il s’agit d’un wrapper utilitaire autour de [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) qui gère automatiquement l’interrogation.
```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');
}
```
`complete: true` signifie que toutes les tâches ont atteint un état final — cela **ne** veut pas dire que toutes les tâches ont réussi. Vérifiez les valeurs de `job.status` de chaque tâche pour confirmer la réussite.
## Référence
### Paramètres
| Nom | Type | Description |
| --------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `enqueueResult` | [`EnqueueFilesResult`](/docs/core/types/enqueue-files-options) | L'objet de résultat renvoyé par [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) |
| `options?` | `AwaitJobsOptions` | Configuration de polling facultative |
#### AwaitJobsOptions
| Nom | Type | Par défaut | Description |
| ------------------------- | -------- | -------------- | --------------------------------------------------------------------- |
| `pollingIntervalSeconds?` | `number` | `5` | Fréquence des interrogations pour vérifier les mises à jour de statut |
| `timeoutSeconds?` | `number` | `600` (10 min) | Temps d’attente maximal avant de renvoyer les statuts actuels |
### Retourne
`Promise`
```typescript
type AwaitJobsResult = {
/** Indique si tous les jobs ont atteint un état terminal (pas nécessairement un succès). */
complete: boolean;
jobs: JobResult[];
};
type JobResult = {
jobId: string;
status: JobStatus;
error?: { message: string };
};
```
| Propriété | Type | Description |
| --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ |
| `complete` | `boolean` | `true` si aucune tâche n’est encore en cours ; `false` si le délai d’expiration est atteint |
| `jobs` | `JobResult[]` | État final de chaque tâche |
| `jobs[].jobId` | `string` | Identifiant de la tâche |
| `jobs[].status` | [`JobStatus`](/docs/core/class/methods/translation/check-job-status#jobstatus) | État final : `'completed'`, `'failed'` ou `'unknown'` |
| `jobs[].error?` | `{ message: string }` | Détails de l’erreur si la tâche a échoué |
***
## Exemple
### Mettre en file d’attente, puis attendre les traductions
```typescript title="index.ts" copy
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// Upload et mise en file d'attente
const { uploadedFiles } = await gt.uploadSourceFiles(files, {
sourceLocale: 'en',
});
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
sourceLocale: 'en',
targetLocales: ['es', 'fr', 'de'],
});
// Attendre la fin de tous les jobs (interrogation toutes les 10 s, délai d'expiration après 5 min)
const result = await gt.awaitJobs(enqueueResult, {
pollingIntervalSeconds: 10,
timeoutSeconds: 300,
});
if (!result.complete) {
console.warn('Certains jobs ne se sont pas terminés dans les délais');
}
// Vérifier les résultats individuels
for (const job of result.jobs) {
if (job.status === 'completed') {
console.log(`Job ${job.jobId} réussi`);
} else if (job.status === 'failed') {
console.error(`Job ${job.jobId} échoué : ${job.error?.message}`);
}
}
```
***
## Remarques
* Remplace les boucles d’interrogation manuelles — inutile d’appeler vous-même `checkJobStatus` dans une boucle `while`
* Les tâches que l’API ne trouve pas sont traitées avec le statut `'unknown'`
* Si `enqueueResult` ne contient aucune tâche, la méthode renvoie immédiatement `{ complete: true, jobs: [] }`
* Le délai d’expiration est une limite appliquée au mieux — la méthode termine d’abord l’interrogation en cours avant de renvoyer le résultat
## Étapes suivantes
* Consultez [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) pour lancer des tâches de traduction
* Consultez [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) pour vérifier manuellement l’état
* Consultez [`downloadFile`](/docs/core/class/methods/translation/download-file) pour télécharger les traductions terminées