タグ付けされた質問 「asynchronous」

非同期プログラミングは、通常、ソフトウェアのパフォーマンス、応答性、および/または構成可能性を向上させるために、待ち時間が長いか優先度の低い操作を延期するための戦略です。このような戦略は、通常、イベント駆動型プログラミングとコールバックを組み合わせて使用​​し、オプションでコルーチンやスレッドを介して同時実行性を利用します。

1
Promiseを使用すると、ブラウザが拒否を2回返すのに、解決を2回返さないのはなぜですか?
javaScriptを理解できませんpromises。次のコードを書きました。 var p = new Promise(function(resolve,reject){ reject(Error("hello world")); }); setTimeout(()=>p.catch(e=>console.log(e)),5000); これはChromeデベロッパーコンソールにすぐに表示されます。 しかし、5秒待った後、メッセージは次の画像のように自動的に黒に変わります。 私のjavaScriptコードと開発者コンソールの間でこの動作を見たことはありません。私のJavaScriptスクリプトは、開発者コンソールで「既存のコンテンツを変更」できます。 そこで、resolve次のコードを記述して、同じ状況が発生するかどうかを確認することにしました。 var p = new Promise(function(resolve,reject){ resolve("hello world"); }); setTimeout(()=>p.then(e=>console.log(e)),5000); しかし、この状況では、私の開発者コンソールには5秒後まで何も表示されず、そこに出力されhello worldます。 とが呼び出されるタイミングの点でresolveとのreject扱いが異なるのはなぜですか? 追加 私もこのコードを書きました: var p = new Promise(function(resolve,reject){ reject(Error("hello world")); }); setTimeout(()=>p.catch(e=>console.log("errors",e)),5000); setTimeout(()=>p.catch(e=>console.log("errors 2",e)),6000); setTimeout(()=>p.catch(null),7000); これにより、開発者コンソールにいくつかの出力が発生します。時間0で赤のエラー、時間5秒でテキストに赤が黒に変わりerrors hello world、時間6秒で新しいerrors 2 hello worldエラーメッセージ、時間7秒で赤のエラーメッセージ。今私はreject実際に何回呼び出されるのか非常に混乱しています...私は迷子になっています...

2
C#で非同期動作を委任するためのパターン
非同期処理の問題を追加する機能を公開するクラスを設計しようとしています。同期プログラミングでは、これは次のようになります。 public class ProcessingArgs : EventArgs { public int Result { get; set; } } public class Processor { public event EventHandler<ProcessingArgs> Processing { get; } public int Process() { var args = new ProcessingArgs(); Processing?.Invoke(args); return args.Result; } } var processor = new Processor(); processor.Processing += args => args.Result …

2
CombineとSwiftUIを使用した非同期操作
CombineとSwiftUIを使用して非同期操作を処理する方法を理解しようとしています。 たとえば、HealthKitManagerヘルスストアの承認のリクエストを処理するクラスがあります。 final class HealthKitManager { enum Error: Swift.Error { case notAvailable case authorisationError(Swift.Error) } let healthStore = HKHealthStore() func getHealthKitData(for objects: Set<HKObjectType>, completion: @escaping (Result<Bool, Error>) -> Void) { guard HKHealthStore.isHealthDataAvailable() else { completion(.failure(.notAvailable)) return } self.healthStore.requestAuthorization(toShare: nil, read: objects) { completed, error in DispatchQueue.main.async { if let error …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.