# generaltranslation: General Translation Core SDK: awaitJobs
URL: https://generaltranslation.com/ja/docs/core/class/methods/translation/await-jobs.mdx
---
title: awaitJobs
description: 翻訳ジョブの完了をポーリングして待機する `awaitJobs` メソッドの API リファレンス
---
## 概要
`awaitJobs` メソッドは翻訳ジョブのステータスをポーリングし、すべてのジョブが終端状態 (`completed`、`failed`、または `unknown`) に達するか、タイムアウトに達すると解決されます。これは、ポーリングを自動で処理する [`checkJobStatus`](/docs/core/class/methods/translation/check-job-status) の便利なラッパーです。
```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('すべてのジョブが完了しました');
} else {
console.log('タイムアウト — 一部のジョブがまだ処理中です');
}
```
`complete: true` は、すべてのジョブが終端状態に達したことを意味します。**すべてのジョブが成功した**ことを意味するわけではありません。成功したかどうかは、各 `job.status` の値を確認してください。
## リファレンス
### パラメーター
| 名前 | 型 | 説明 |
| --------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `enqueueResult` | [`EnqueueFilesResult`](/docs/core/types/enqueue-files-options) | [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files) が返す結果オブジェクト |
| `options?` | `AwaitJobsOptions` | オプションのポーリング設定 |
#### AwaitJobsOptions
| 名前 | 型 | デフォルト | 説明 |
| ------------------------- | -------- | ------------ | ------------------------- |
| `pollingIntervalSeconds?` | `number` | `5` | ステータス更新を確認するポーリングの間隔 |
| `timeoutSeconds?` | `number` | `600` (10 分) | 現在のステータスを返して解決するまでの最大待機時間 |
### 戻り値
`Promise`
```typescript
type AwaitJobsResult = {
/** すべてのジョブが終端状態に達したかどうか(成功とは限らない)。 */
complete: boolean;
jobs: JobResult[];
};
type JobResult = {
jobId: string;
status: JobStatus;
error?: { message: string };
};
```
| プロパティ | 型 | 说明 |
| --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------- |
| `complete` | `boolean` | 進行中のジョブが残っていなければ `true`、タイムアウトに達した場合は `false` |
| `jobs` | `JobResult[]` | 各ジョブの最終ステータス |
| `jobs[].jobId` | `string` | ジョブの識別子 |
| `jobs[].status` | [`JobStatus`](/docs/core/class/methods/translation/check-job-status#jobstatus) | 最終ステータス: `'completed'`、`'failed'`、または `'unknown'` |
| `jobs[].error?` | `{ message: string }` | ジョブが失敗した場合のエラーの詳細 |
***
## 例
### 翻訳をエンキューして完了を待つ
```typescript title="index.ts" copy
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// アップロードしてエンキュー
const { uploadedFiles } = await gt.uploadSourceFiles(files, {
sourceLocale: 'en',
});
const enqueueResult = await gt.enqueueFiles(uploadedFiles, {
sourceLocale: 'en',
targetLocales: ['es', 'fr', 'de'],
});
// すべてのジョブが完了するまで待機(10秒ごとにポーリング、5分でタイムアウト)
const result = await gt.awaitJobs(enqueueResult, {
pollingIntervalSeconds: 10,
timeoutSeconds: 300,
});
if (!result.complete) {
console.warn('一部のジョブが時間内に完了しませんでした');
}
// 個別の結果を確認
for (const job of result.jobs) {
if (job.status === 'completed') {
console.log(`ジョブ ${job.jobId} が成功しました`);
} else if (job.status === 'failed') {
console.error(`ジョブ ${job.jobId} が失敗しました: ${job.error?.message}`);
}
}
```
***
## 注意事項
* 手動のポーリングループが不要になります — `while` ループ内で自分で `checkJobStatus` を呼び出す必要はありません
* API で見つからないジョブは、`'unknown'` ステータスとして扱われます
* `enqueueResult` にジョブが含まれていない場合、このメソッドは即座に `{ complete: true, jobs: [] }` を返します
* タイムアウトはベストエフォートの制限です — このメソッドは、現在のポーリングが完了してから終了します
## 次のステップ
* 翻訳ジョブを開始するには、[`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files)を参照してください
* ステータスを手動でポーリングするには、[`checkJobStatus`](/docs/core/class/methods/translation/check-job-status)を参照してください
* 完了した翻訳をダウンロードするには、[`downloadFile`](/docs/core/class/methods/translation/download-file)を参照してください