A1. 2023年7月現在、async await使えません
A2. 非同期処理するためのライブラリが必要です
ライブラリ
- Async.gs: https://gist.github.com/sdesalas/2972f8647897d5481fd8e01f03122805
- 30~60s以上のラグがある
- また連続で処理するとGASの制限により、キューが詰まることも
- 処理は非同期のため、順番は保証されないことに注意するべき
- コメントの議論は読んでおくと良い
- RunAll: https://github.com/tanaikech/RunAll
- 並列処理と考えたほうが良さそう
- GCP連携せなあかんので10分だけ面倒
例えばslackのsubscription系の API使ったときに、そのレスポンスを処理をする場合、確実性的にAsync.gsに軍配が上がる。
参考資料
ここで公式っぽい雰囲気で(issuetracker.google.comなので)議論されている。
2023年6月時点では上記の方法しか観測できなかったが、こちらで新しい方法の提案、サポート情報について議論されている可能性もあるので、一度チェックすると良さそう。 issuetracker.google.com
その他の方法: google formでキューイングする事例もあったが、これはトリッキーすぎて試せてない。 Return a response from doPost before function finishes. : GoogleAppsScript
宣伝
GoogleAppsScriptは、clasp使ってgit管理し、pushもdeployもGithub Action等を使い、自動化しましょう。