Pythonでは、非同期処理を行うための構文としてfor await
があります。この記事では、その基本的な使い方と活用方法について解説します。
for await
とは
for await
は、Pythonの非同期処理で使用される構文です。非同期処理を繰り返す際に有効に活用できます。具体的な書き方は以下のようになります。
for await (obj of iteration) { }
ここで、iteration
はイテレーションと呼ばれ、配列のような形でオブジェクトを複数保持しています。呼ばれる度に次のオブジェクトを返却し、オブジェクトがなくなったら終了という仕組みです。
for await
の活用
for await
は、非同期処理を繰り返す際に特に有効です。例えば、Web APIを使って外部からデータを取得したり、ファイルを書き込んだりする際に、この非同期処理が使われます。
以下に、for await
を用いた非同期処理の一例を示します。
async function* gen_async() {
await sleep(1)
yield 'Hello'
await sleep(5)
yield 'World'
await sleep(2)
yield 'From'
await sleep(1)
yield 'Monaca'
}
(async () => {
for await (const v of gen_async()) {
console.log(v);
}
})();
このコードは、非同期に処理を待ちながら順番に実行されていきます。
まとめ
非同期処理を分かりやすく書くことができれば、アプリのコードがぐっとメンテナンスしやすくなり、保守や開発も容易になります。for await
を使って書いてみてください。