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

dart - ダーツで未来のあるリストを管理するには?

私は Dart の初心者です。そして、Deck というトランプ オブジェクトのリストを作成しました。ランダムなカードを選択して、そのカードをデッキから削除しようとしています。デッキが減る前に次のカードがピックされているように見えるため、重複しています。デッキから 10 枚のユニークなランダム カードを選ぶ一連のイベントを今後どのように処理しますか?

Card オブジェクトを Future として返そうとすると、次のようになります。

タイプ 'Card' はタイプ '() => dynamic' の 'computation' のサブタイプではありません。

デッキ リストを返そうとすると、次のようになります。

型 'List' は 'computation' の型 '() => dynamic' のサブタイプではありません。

正しい構文、ロジックの欠陥がありませんか、それとも、おそらく変更を監視して、リストを別の方法で処理する必要がありますか?

編集して追加: futures 構文は機能しますが、削除が正しく行われていないようです。2 番目の名前付きコンストラクターを使用して List から新しい Card オブジェクトをプリロードすることを除いて、以下の Jim-Y によって提案されたコードにコードを変更しました。修正されたコードと出力は次のとおりです。

ご覧のとおり、クラブの 10 が 2 回印刷されています。では、パス 6 で 10 が削除された場合、なぜパス 7 に残っているのでしょうか?

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

dart - 他の先物によって提起された先物を待っています

Lawndart ライブラリを使用してブラウザー データにアクセスしており、一連のクエリの結果を収集したいと考えています。これが私がうまくいくと思ったものです:

ただし、コールバックが呼び出されたときmapはまだ空です (正しく入力されますが、後ですべての Future が完了した後で)。問題は、呼び出しによって作成されたgetByKey()先物が、呼び出しによって作成された先物によって「キャプチャ」されていないことだと思いforEach()ます。

結果を正しく取得するためにコードを修正するにはどうすればよいですか?

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

dart - Dart イベント キューとマイクロタスク

ダーツイベントループがどのように機能するかを理解しようとしています。The Event Loop and Dartという Web サイトのイベント ループに関する記事を読んだところ、著者は dart のイベント ループがどのように機能するかについてかなり詳しく説明しています。

しかし、私が理解していないのは、イベントがキューを取得する方法です。例えば

ここで dart はイベント キューに 3 つのエントリを作成しますか、それとも 1 つだけ作成しますか? クラス Future が遅延実行を担当していることを知っています。それからオブジェクトを作成すると、

イベント ループの 1 つのエントリにすぎません。

上記のこの記事では、マイクロタスクについて読みました。このマイクロタスクはイベント キューの前に実行されますが、意味がわかりません。なぜ dart チームはこのマイクロタスクを実装するのですか? 多分私はいくつかの例が必要です!

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

unit-testing - HttpClient & 単体テスト

Dart、単体テスト、および非同期プログラミング全般の初心者。さらに言えば、StackOverflow。shell_route を中心に RESTful サーバーを構築し、HttpClient を使用してテストしようとしています。

私のテストは機能しますが、自然に終了しません。代わりに、プロセスを手動で終了する必要があります。オンラインで見つけたいくつかのアプローチを試しましたが、うまくいきませんでした。誰か手を貸してくれませんか?これが私が取り組んでいるものです:

更新:httpパッケージを優先して HttpClient を放棄することにしました。作業がはるかに簡単になり、テストが自然に終了するようになりました。明らかに、最初のゴーアラウンドで何かを正しく処理していませんでした。上記のコードは次のようになります。

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

mongodb - 問題のあるMongoDartの検索

Dart で MVC フレームワークを実装しています。私は find メソッドを実装しており、そのクエリからドキュメントを返すようにしたいと考えています。

問題は、find() が操作が実行されるのを待たず、then() 内で関数をバインドする必要があることです。

現在、find() からの戻り値は [] です。書類を適切に返却する方法を知っていますか?

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

dart - dart future.sync メソッドの使い方

クラス future から future.sync を使用しようとすると

エラーメッセージが表示されました

例外の中断: タイプ NoSuchMethodError のオブジェクト

future.sync を間違った方法で使用していませんか?

私の2番目の質問は

パッケージから非同期ライブラリをインポートしようとすると、コンパイラ メッセージが表示されるのはなぜですか

例外発生: TypeError
未定義クラス 'Future' のオブジェクト

私はここで何を間違っていますか?

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

dart - クライアントまたはhttpサーバーなしでTimerによって呼び出されたDart HttpClient.getUrl

編集: 問題は Timer や HttpServer に関連していませんでした。dart.io のスリープ機能がすべてを一時停止していました。それはドキュメントに明確に記載されています、私の悪いことです。

///

サーバーコードで動作する HttpClient に奇妙な問題があります。電話する

Timer オブジェクトから、印刷ステップに到達することはありません。Timer からではなく HttpRequest から呼び出される以前のバージョンのコードをほぼコピー アンド ペーストしたものです。作業コードは私の質問 [ここ] [1] にあります。長い行で失敗します。到達しない最後の Future (HttpClientResponseBody) であると思われます。

タイマー オブジェクトは次のように作成されます (テスト コードのみ)。

//編集: わかりました、これがソースです。些細な問題かもしれません..2日間理解できません:-D