タグ付けされた質問 「ecmascript-2017」

20
forEachループでasync / awaitを使用する
使用に問題があるasync/のawait中にforEachループが?私は、ファイルの配列awaitと各ファイルのコンテンツをループしようとしています。 import fs from 'fs-promise' async function printFiles () { const files = await getFilePaths() // Assume this works fine files.forEach(async (file) => { const contents = await fs.readFile(file, 'utf8') console.log(contents) }) } printFiles() このコードは機能しますが、何か問題が発生する可能性がありますか?このようなより高次の関数ではasync/ を使用するべきではないと誰かに言わawaitれたので、これに問題があるかどうか尋ねたかっただけです。

10
非同期機能+ await + setTimeoutの組み合わせ
私は新しい非同期機能を使用しようとしています。私の問題を解決することが将来的に他の人の役に立つことを願っています。これは機能している私のコードです: async function asyncGenerator() { // other code while (goOn) { // other code var fileList = await listFiles(nextPageToken); var parents = await requestParents(fileList); // other code } // other code } function listFiles(token) { return gapi.client.drive.files.list({ 'maxResults': sizeResults, 'pageToken': token, 'q': query }); } 問題は、whileループの実行速度が速すぎ、スクリプトが1秒あたりの送信リクエスト数が多すぎることです。そのため、リクエストを遅延させるスリープ機能を構築したいと思います。したがって、この関数を使用して他のリクエストを遅らせることもできます。リクエストを遅らせる別の方法がある場合は、お知らせください。 とにかく、これは動作しない私の新しいコードです。リクエストの応答は、setTimeout内の匿名非同期関数に返されますが、スリープ関数respに応答を返す方法がわかりません。最初のasyncGenerator関数に追加します。 async function asyncGenerator() …

7
非同期/待機構文で拒否する方法は?
非同期/待機関数によって返されたプロミスをどのように拒否できますか? 例:もともと foo(id: string): Promise<A> { return new Promise((resolve, reject) => { someAsyncPromise().then((value)=>resolve(200)).catch((err)=>reject(400)) }); } async / awaitに翻訳する async foo(id: string): Promise<A> { try{ await someAsyncPromise(); return 200; } catch(error) {//here goes if someAsyncPromise() rejected} return 400; //this will result in a resolved promise. }); } では、この場合、この約束を適切に拒否するにはどうすればよいですか?

6
トップレベルで非同期/待機を使用するにはどうすればよいですか?
私は以上続けられているasync/ awaitしていくつかの記事の上に行くの後、私は自分自身のテストの事に決めました。しかし、なぜこれが機能しないのか頭を抱えているようには見えません。 async function main() { var value = await Promise.resolve('Hey there'); console.log('inside: ' + value); return value; } var text = main(); console.log('outside: ' + text); コンソールは以下を出力します(ノードv8.6.0): >外部:[オブジェクトの約束] >内側:こんにちは 関数内のログメッセージが後で実行されるのはなぜですか?async/ awaitが作成された理由は、非同期タスクを使用して同期実行を行うためだと思いました。 .then()after を使用せずに関数内で返された値を使用できる方法はありmain()ますか?

5
Array.mapで非同期待機を使用する
次のコードがあるとします: var arr = [1,2,3,4,5]; var results: number[] = await arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; }); 次のエラーが発生します。 TS2322:タイプ 'Promise <number> []'はタイプ 'number []'に割り当てることができません。タイプ 'Promise <number>はタイプ' number 'に割り当てることができません。 どうすれば修正できますか?一緒に作っasync awaitてArray.map一緒に作業するにはどうすればよいですか?

7
async / awaitでブロックを試行/キャッチする
私はノード7の非同期/待機機能を掘り下げて、このようなコードに出くわし続けています function getQuote() { let quote = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in …

4
コールバックが戻るのを「待つ」方法は?
以下の例のような単純なコールバックを使用する場合: test() { api.on( 'someEvent', function( response ) { return response; }); } async / awaitを使用するように関数を変更するにはどうすればよいですか?具体的には、「someEvent」が1回だけ呼び出されることが保証されていると仮定して、関数testを、次のようにコールバックが実行されるまで返されない非同期関数にしたいと思います。 async test() { return await api.on( 'someEvent' ); }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.