問題タブ [ecmascript-2017]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1474 参照

node.js - await が待機しないのはなぜですか? Sequelize が応答もエラーもしないのはなぜですか?

下の .gif でわかるように、データベースを初めて呼び出すと、データが正常に返されます。しかし、次の 2 回は戻りもエラーも発生せず、非同期コードは単純に消えます。さらに悪いことに、私の await ステートメントは応答を待たず、そのまま続行します。

Sequelize への後続の呼び出しが消える理由を誰か教えてもらえますか? さらに重要なのは、私が使用したにもかかわらず、呼び出し元のコードが実行され続けるのはなぜawaitですか?

ここに画像の説明を入力

最も内側のコードは次のとおりです。

呼び出し元:

0 投票する
4 に答える
18346 参照

javascript - チェーン非同期関数

非同期関数では、次のように非同期値を取得できます。

const foo = await myAsyncFunction()

結果に対してメソッドを呼び出したい場合は、同期関数を使用して次のようにしますmyAsyncFunction().somethingElse()

非同期関数で呼び出しをチェーンすることは可能ですか、それとも結果ごとに新しい変数を割り当てる必要がありますか?

0 投票する
2 に答える
18650 参照

javascript - setTimeout で async を使用することは有効ですか?

Javascript に非同期関数があり、それに setTimeout を追加しました。コードは次のようになります。

setTimeout の目的は、関数が実行される前に 2 秒を追加することです。ユーザーが入力を停止したことを確認する必要があります。

とにかく setTimeout は非同期なので、この関数から async/await を削除する必要がありますか?

0 投票する
4 に答える
341 参照

javascript - Promise オブジェクトを同期する方法は?

同期する必要がある promise オブジェクトがあります。たとえば、最初の約束が完了する前に、2 番目の約束が機能するべきではありません。最初のものが拒否された場合、最初のものを再度実行する必要があります。

いくつかの例を実装しました。これはうまく機能します。getVal を呼び出し、2000ms 待ち、戻り、i++、再度 getVal を呼び出す .....

しかし、promise オブジェクトの配列を制御する必要があります。私がやりたいことは、データがあり、それを5つに分割したことです。最初の部分が処理された後 (例: サーバーに送信)、2 番目の部分を処理したい場合は、最初の部分を再度処理する必要があります。

これは私が作ったプロトタイプの実装です

このコードの Promise オブジェクトは順次動作します。最初の例として同期的に動作するように、以下のコードを修正するにはどうすればよいですか。

0 投票する
1 に答える
6078 参照

javascript - forEach で async await

期待どおりに機能する次の機能があります。

async await を使用するようにリファクタリングし、次のように forEach の本体で async 関数を呼び出します。

forEach が非同期で実行され、関数が実行されて終了するため、これは明らかに関数を壊します。

forEach を同期的に実行するために async await を使用する方法はありますか。ジェネレーターにリファクタリングできますか?

0 投票する
2 に答える
684 参照

javascript - React-Native:babel を ES7 に更新できません

新しい ES7 機能の async/await を使用しようとしていますが、反応ネイティブの node_modules で確認できる限り、そこにはありません。

反応ネイティブ バージョン 0.31 を持っていて、それを 0.32 に更新したところです。babel がまだ ES7 機能で更新されていないことがわかります。そのため、async/await を使用できません。どうすればそれを機能させることができるか知っていますか?

0 投票する
1 に答える
2680 参照

javascript - Async / Await JS Catch が try/catch で機能しない

私は以下のJavaScriptを少し持っています。ES6 プロジェクトで async/await を使用します。突然 404 応答コードがヒットしないことに気付きました。実際、.json() もコンソール エラーをスローしていますが、まだキャッチにヒットしていません。すぐにスローしてコードの catch ブロックに移動しようとすると、エラーが発生することが予想されます。

0 投票する
2 に答える
16655 参照

javascript - 待機中の値を返すと、Promise? が返されます。(es7 非同期/待機)

ログに記録しPromise { <pending> }ます。の代わりに Promise を返すのはなぜ'somestring'ですか?

これをコンパイルするために Babel ES7 プリセットを使用しています。

0 投票する
1 に答える
4422 参照

javascript - eslint await Expected an assignment or function call and instead saw an expression

When I place this code for a promise that the result is not needed to proceed:

I'm getting this eslint error:

[eslint] Expected an assignment or function call and instead saw an expression. (no-unused-expressions)

If the code is like this:

Then the eslint error is:

[eslint] 'dummy' is defined but never used (no-unused-vars)

Anyone knows how this should be fixed (I know I could do // eslint-disable-line no-unused-expressionsbut I'm looking if there is a better syntax for this statement.

0 投票する
1 に答える
1454 参照

javascript - co と await の違い

私はこのコードの違いを本当に理解していません:

そして、この他のもの:

ブラウザーまたはサーバー (node.js) で使用される各コードの長所/短所 (主にパフォーマンス、読みやすさ、およびフロー制御の観点から) と、co ( co 外部ライブラリーに依存) または await (これはまだ ES7 の一部ではなく、babel-polyfillに依存しています) が使用されます。