タグ付けされた質問 「es6-promise」

ES6 Promiseは、進行中の非同期操作を表すECMAScript 2015オブジェクトです

6
なぜPromise.catchハンドラー内にスローできないのですか?
なぜErrorcatchコールバックの内部をスローして、他のスコープにあるかのようにプロセスにエラーを処理させないのはなぜですか? console.log(err)何もしなければ、何も出力されず、何が起こったのかわかりません。プロセスは終了しました... 例: function do1() { return new Promise(function(resolve, reject) { throw new Error('do1'); setTimeout(resolve, 1000) }); } function do2() { return new Promise(function(resolve, reject) { setTimeout(function() { reject(new Error('do2')); }, 1000) }); } do1().then(do2).catch(function(err) { //console.log(err.stack); // This is the only way to see the stack throw err; // …

8
TypescriptをネイティブES6プロミスで使用する方法
私はTypescriptの完全な初心者であり、TypescriptでES6のプロミスを使用することが可能かどうか、そしてそれを機能させるために何をしなければならないのか疑問に思っています。ノード0.11.14を実行していますが、コンパイル中に「名前「Promise」が見つかりません」というエラーが発生します。

16
バニラECMAScript 6プロミスチェーンをキャンセルする
.thenJavaScript Promiseインスタンスのs をクリアする方法はありますか? QUnitの上にJavaScriptテストフレームワークを記述しました。フレームワークは、それぞれでテストを同期的に実行しPromiseます。(このコードブロックの長さで申し訳ありません。できる限りコメントを付けたので、退屈さが少なく感じられます。) /* Promise extension -- used for easily making an async step with a timeout without the Promise knowing anything about the function it's waiting on */ $$.extend(Promise, { asyncTimeout: function (timeToLive, errorMessage) { var error = new Error(errorMessage || "Operation timed out."); var res, // resolve() …

4
約束、追加のパラメーターをチェーンに渡します
たとえば、約束: var P = new Promise(function (resolve, reject) { var a = 5; if (a) { setTimeout(function(){ resolve(a); }, 3000); } else { reject(a); } }); 呼び出した後、promiseのメソッド: P.then(doWork('text')); doWork関数は次のようになります。 function doWork(data) { return function(text) { // sample function to console log consoleToLog(data); consoleToLog(b); } } doWorkで内部関数を返さないようにして、promiseおよびtextパラメーターからデータにアクセスするにはどうすればよいですか?内部機能を回避するためのトリックはありますか?

16
ES6のPromise.all()を使用するときに同時実行を制限するための最良の方法は何ですか?
データベースからクエリされたリストを反復処理し、そのリストの各要素に対してHTTPリクエストを行うコードがいくつかあります。そのリストは、かなり大きな数(数千)になる場合があります。数千の同時HTTP要求でWebサーバーにアクセスしないようにしたいと思います。 このコードの短縮バージョンは現在、次のようになっています... function getCounts() { return users.map(user => { return new Promise(resolve => { remoteServer.getCount(user) // makes an HTTP request .then(() => { /* snip */ resolve(); }); }); }); } Promise.all(getCounts()).then(() => { /* snip */}); このコードはノード4.3.2で実行されています。繰り返しにPromise.allなりますが、特定の数のPromiseのみが常に進行するように管理できますか?

2
解決後もJavaScript ES6プロミスが実行を続けるのはなぜですか?
promiseはresolve()またはreject()を実行できるものであることを理解しているので、resolveまたはrejectが呼び出された後も、promiseのコードが実行され続けることに驚いた。 すべての即時の関数実行を停止する、exitまたはreturnの非同期フレンドリーバージョンであることを解決または拒否することを検討しました。 次の例でresolveの呼び出し後にconsole.logが表示されることがある理由を誰かが説明できますか。 var call = function() { return new Promise(function(resolve, reject) { resolve(); console.log("Doing more stuff, should not be visible after a resolve!"); }); }; call().then(function() { console.log("resolved"); }); jsbin

5
多くの約束を返し、他のことをする前にそれらすべてを待つ方法
非同期で処理を行うメソッドを呼び出すループがあります。このループはメソッドを何度も呼び出すことができます。このループの後に、すべての非同期処理が完了したときにのみ実行する必要がある別のループがあります。 だからこれは私が欲しいものを示しています: for (i = 0; i < 5; i++) { doSomeAsyncStuff(); } for (i = 0; i < 5; i++) { doSomeStuffOnlyWhenTheAsyncStuffIsFinish(); } 私は約束にあまり精通していないので、誰かが私がこれを達成するのを手伝ってくれるでしょうか? これが私のdoSomeAsyncStuff()振る舞いです: function doSomeAsyncStuff() { var editor = generateCKEditor(); editor.on('instanceReady', function(evt) { doSomeStuff(); // There should be the resolve() of the promises I think. }) } …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.