私たちはノードアプリケーションにバグを導入しましたが、非同期関数呼び出しの前に "await"を付けることを忘れました。Node + Typescript + VSCodeの非同期関数呼び出しでAwaitが見つからない場合はどうすればよいですか?
例:
const getUsers = async() => db.query('SELECT * from Users');
const testMissingAwait = async() => {
const users = getUsers(); // <<< missing await
console.log(users.length);
};
testMissingAwait();
のawaitキーワードが欠落して呼び出し非同期機能を見つけるための簡単な方法はありますか?
これらに失敗すると、これらのフラグを自動的に付けるVisual Studioのコード拡張を書くのにどれだけの労力がかかるでしょうか? (誰かが私を正しい方向に向けることができれば取り組んでいる)。
この機能は非同期でも必要ですか?それはまったく何かを得ますか? (getUsers) –
このプロジェクトでタイスクリプトを使用していますか?そうであれば、 'Promise'の型は 'length'というプロパティを持たないので、コンパイル時にそのエラーをキャプチャしたはずです。 –
CRice
@CRiceプロンプトに 'length'というプロパティがないため、 "users.length"を実行すると動作しますが、戻り値のない非同期関数を待つのを忘れた場合、Typescriptはこの仕組みを手助けしません。誰かが、あなたが待機していない非同期関数呼び出しを検出し、それらを可能なエラーとしてフラグを立てるTypescript設定(または他のリンター)があるかどうかを知っていますか?(非同期作業を始めるときだけ明示的に無視するよう指示それを待たずに)? –