問題タブ [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 投票する
2 に答える
2693 参照

javascript - ES2017 Async/await 関数 - promise でのみ機能しますか?

私は自分の js アプリケーションで ES7 関数を使い始めましasync/awaitた (Babel によってトランスパイルされました)。

間違っている場合は修正してください。ただし、Promises でのみ機能しますか? はいの場合、これは、通常のコールバック関数を Promises にラップする必要があることを意味します (ところで、現在行っていること)。

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

javascript - ES2017 - 非同期と歩留まり

await次の EcmaScript にasync 関数とキーワードを追加するという現在の議論について混乱しています。

asyncキーワードの前にキーワードが必要な理由がわかりませんfunction

私の観点からすると、キーワードはジェネレーターまたはプロミスの完了awaitを待つため、関数で十分なはずです。return

awaitasync追加のマーカーなしで、通常の関数とジェネレーター関数内で簡単に使用できる必要があります。

の結果として使用できる関数を作成する必要がある場合はawait、単にプロミスを使用します。

私の質問の理由は、次の例が由来するこの良い説明です。

関数の実行が、すべての await が満たされるまでホール関数の終了を待機する場合は、通常の関数として実行することもできます。

私の意見では、次のティック(フルフィルメントを待つ)が完了するまで、関数全体の実行が保持されます。Generator-Function との違いは、next() がオブジェクトの値と完了フィールドをトリガーして変更することです。代わりに、関数は完了時に結果を返すだけで、トリガーは while ループのような関数内部トリガーです。

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

ecmascript-6 - await は、非同期呼び出しが完了するまで待機していないようです

呼び出しを使用する非同期関数があり、を使用すると、受け取った値まで関数の実行を一時停止する必要がawaitあると思いました。awaitどういうわけか、それは私にはうまくいきません。

これが私の関数です(クラス内にあります):

そして、同じクラス内の別の関数で呼び出す方法は次のとおりです。

したがって、次の出力が得られます。

INSIDE: true最初に印刷されると予想される値ですが。

基本的にuserExists、関数からブール値を取得し、userExistsInDBそれを他のコードで使用する必要があります。

ここで何が間違っていますか?

0 投票する
6 に答える
99228 参照

javascript - ストリームで ES8 async/await を使用するには?

https://stackoverflow.com/a/18658613/779159は、組み込みの暗号化ライブラリとストリームを使用してファイルの md5 を計算する方法の例です。

しかし、ストリームを使用する効率を維持しながら、上記のコールバックを使用する代わりに ES8 async/await を使用するように変換することは可能ですか?

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

ecmascript-6 - (ES6) クラス (ES2017) async / await getter

ES6 クラスのゲッターが ES2017 の await / async 関数から値を返すようにすることは可能ですか。

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

javascript - async/await モッキング

テストで async/await を使用してこのようなことができるかどうか疑問に思いました。

通常の約束を使用すると、たとえば、このような単体テストで約束をモックできます。

(約束を上書きすれば、フラッシュなどに対処する必要はありません。) しかし、今、 fn() がこれに変わるとき

beforeEach で行った上書きは、もう機能しません。ここでの私の質問は... async/await コード スタイルを使用した promise の上書きで行ったようなことを行うことはできますか?

ここでのアイデアは、「someService」のように、単体テストを行っている関数が使用する外部依存関係をモックアウトしたいということです。その特定の単体テストでは、 someService.someFn が適切に機能することを期待しており、その応答をモック化できます。他のテストでは、「someFn」の有効性を確認します。

0 投票する
32 に答える
1295725 参照

javascript - forEach ループで async/await を使用する

async/awaitforEachループで使用する際に問題はありますか? awaitファイルの配列と各ファイルの内容をループしようとしています。

このコードは機能しますが、何か問題が発生する可能性はありますか? このような高階関数でasync/を使用することは想定されていないと誰かに言われたので、これに問題があるかどうかを尋ねたかっただけです。await

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 を削除する必要がありますか?