問題タブ [dart-async]

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 投票する
1 に答える
565 参照

dart - Dart でいくつかの非同期 I/O アクションをクリーンに (Isolates) 実行するには?

DartにはIsolatesという概念があります。各呼び出し (データベース呼び出し) が前の呼び出しに依存する非同期 IO が多数あるアプリケーション (Dart で実験中) があります。そのため、ネストされたコールバック地獄に陥りました。

Isolates がそのネストされたコールバック スープを解決できるかどうか疑問に思っていましたが、少し冗長に見え、うまく適合するかどうかはわかりません。

これらの問題を解決できる次の ECMAScript Harmony で提案されているジェネレーターもありますが、現在、Dart で多くの非同期 IO をクリーンな方法で行うにはどうすればよいでしょうか?

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

dart - Dartでオブジェクトの準備ができたときにイベントをディスパッチする方法は?

Dart でいくつかの WebGL を実験しています。別のファイルからシェーダーをロードするクラスを作成しました。オブジェクトの準備ができたらイベント (関数) をスローしたいので、シェーダーが適切にロードされていることを認識してアプリケーションを続行できます。 . 誰かがこれを行う簡単な方法を知っていますか?

0 投票する
3 に答える
19054 参照

dart - ダーツの完成者と未来?

上記は、githubSQLJockyConnectorから取得したサンプルコードです。

可能であれば、pool.queryの外部でコンプリーターオブジェクトが作成された関数が関数completer.complete(null)を呼び出している理由を誰かに説明してもらいたいと思います。

つまり、印刷実行後の部分がわかりません。

注:可能であれば、将来およびコンプリーターがDB操作と非DB操作の両方の実用的な目的でどのように使用されるかについても知りたいと思います。

私は次のリンクを探索しました: FutureとCompleterに関するGoogleグループのディスカッション

および以下に示すAPIリファレンスドキュメント 。CompleterAPIリファレンスおよびFutureAPIリファレンス

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

dart - Completer.CompleteException(exception、stackTrace);のDartで現在のスタックトレースを取得するにはどうすればよいですか。

一部のコードがfutureを返し、futureが「Error」または「Exception」を返す必要があると判断した場合、スタックトレースをどのように渡すことができますかCompleter.completeException(exception, stackTrace);

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

dart - Observable.Throttle に相当するストリーム?

Observable.Throttleに相当する Streams はありますか? そうでない場合 - 同様の効果を達成するための合理的にエレガントな方法はありますか?

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

dart - 非同期コードの UnitTest の例

どういうわけかDartで単体テストを読んだ後、sでそれを使用する方法をまだ理解できませんFuture

例えば:

}); }

したがって、テストでは、実際のMongoDbDatabaseBaseクラスへのいくつかのパラメーターを使用して基本抽象クラスのインスタンスを作成し、作成されたかどうかをすぐに確認します。次に、非常に単純な関数を実行するだけです。この関数は次のように定義されます。AddMessage

と戻りcompleter.futureます。

渡された値messageが null の場合、関数は次のように失敗します。.completeError('Message can not be null');

Future実際のテストでは、正常に完了したかエラーが発生したかをテストしたいと考えています。したがって、これは返品をテストする方法を理解するための私の試みですFuture-問題は、このテストが失敗しないことです :(

を返す関数をテストする方法の小さなコード例を答えに書いていただけますFutureか? そして、テストでは、戻り値(成功時)をテストし、成功値が正しくない場合はテストに失敗し、別のテストが失敗すると、関数は失敗してブロックFutureに入ります。onError:

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

dart - イベントに応じて複数の非同期先物を起動する

ユーザーがキャンバス要素をクリックしたことに応じて、かなりコストのかかる操作を開始したいと考えています。

M4 Dart についての私の理解では、この将来のコンストラクターは "expensiveFunction" を非同期的に、つまりメイン スレッドとは別のスレッドで起動する必要があるということです。そして、「完了イベントハンドラー」がIDEの出力ウィンドウにすぐに出力され、しばらくしてから「キャンバスの再描画」が出力されるため、このように表示されます。ただし、要素をもう一度クリックすると、前のクリックから「expensiveFunction」の実行が完了するまで何も起こりません。

最初のフューチャがまだ完了していない場合でも、複数のクリックに応答して複数のフューチャをキューに入れることができるように、フューチャを使用して新しいスレッドで計算集約型関数を単純に起動するにはどうすればよいですか?

ありがとう。