私が書いているテストで約束を使う方法を理解しようとしています。私はブラウザでプレーンオールネイティブの約束を使用しています。応答コールバック時の約束の使用
server.onresponse = function(data){
//do stuff with data
}
:(まだ)何のライブラリ
テストでは、私はそうのようにコールバックを登録するサーバーオブジェクトを持っている私は、コールバック
を介してサーバの応答を取得し、サーバーとの非同期通信を必要としません
このテストでは、サーバーの応答に基づいて変更される一連のコマンドをサーバーに送信する必要があります。私はサーバーにコマンドを送信します。
server.sendCommand({data:"do something"})
このコマンドに基づいて、サーバーはonresponseコールバックを発生させます。私は次のコマンドが何であるべきかを決定するためにサーバーが送信したデータを読む必要があります。
相互作用が
- sendコマンド1のようになり、コールバック
- 送信コマンド2 onresponseから
- プロセスデータを待って、コールバックonresponseから
- プロセスデータを待つべき
私は、このやりとりを少しだけ明確にするために約束を使用したいと思います。一連の.then()
のようなもの。
私は約束が再利用できないことを実感しているので、私はonresponseコールバックが発生するたびに同じ約束をリセットすることはできません。
約束でこれを行う方法はありますか?私はジェネレータも読み始めました。それらも助けてくれますか?
おかげ
何[ 'Events'](https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events)を使用してはどうですか? – Adriani6
イベントはどのように役立ちますか? –
はい、このAPIはあなたの仕事には役に立ちません。なぜ、 'sendCommand'は、グローバルな' onresponse'コールバックを発行するのではなく、応答の約束を返しますか? – Bergi