[解決済み] Intellij Idea 警告 - aysnc/awaitで「返されたプロミスは無視される」。
質問
私は
Express.js
を使ったコードで
Node.js
v7.3. この中で、私は
User Router
を作成し、リクエストを私の
User Controller
.
の中でasync/awaitを使っています。
User Controller
の中でasync/awaitを使用して非同期呼び出しを行っています。問題は、IntelliJが次のような警告を出すことです。
login()から返されたPromiseは無視されます。
からは何も返さないということです。
login()
メソッドから何も返していないことです。
以下はそのコードです。
ユーザルータ.js
router.post('/login', function (req, res, next) {
userController.login(req, res); // I get the warning here
});
ユーザーコントローラ(UserController.js)
exports.login = async function (req, res) {
try {
const verifiedUser = await someFunction(req.body.access_code);
let user = await User.findOrCreateUser(verifiedUser);
res.status(200).send(user);
}
catch (err) {
res.status(400).send({success: false, error: err});
}
};
同じログインメソッドをネイティブプロミスだけで書くと、この警告は出ません。私がここで何かを間違って理解しているのか、それともIntelliJが悪いのでしょうか?
EDIT - です。
Stephenのおかげで、非同期関数がプロミスを返すことは理解できましたが、Intellijが非同期関数から何も返されていないことを識別してその警告を表示しない方が良いのではないでしょうか?
.then()
の後に
login()
関数の後に、この関数が提供する
undefined
オブジェクトを提供します。つまり、非同期関数から明示的に何かを返さなければ、未定義が返されるということでしょうか?
どのように解決するのですか?
login()メソッドから何も返せていないことです。
async"と宣言された関数は、定義によりPromiseを返します。 たとえば https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function
しかし、IDEA の警告はあくまで検査です。警告の上で "alt-enter, right" を押して検査レベルを変更すれば、警告を消すことができます。 検査は「JavaScript -> Probable bugs"」カテゴリにあり、「Result of method call returning a promise is ignored"」と名付けられています。
関連
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み】IntelliJ IDEAプロジェクトに外部jar(lib/*.jar)を追加するための正しい方法
-
[解決済み】Intellij IDEAがすべてのMaven依存性を再読込するように強制する。
-
[解決済み】IntelliJ IDEAがserialVersionUIDを生成する件
-
[解決済み] async/awaitは暗黙のうちにプロミスを返すのか?
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] リダイレクトされずにHTMLフォームを送信する方法