0

XML-RPC を介してプログラムと通信する node.js モジュールを作成しています。このプログラムの API は、特定のバージョンの後に最近変更されました。このため、クライアントが作成されたとき ( )、プログラムにそのバージョンを ( XML-RPC を介してcreateClient) 尋ね、それに基づいて API 定義を作成したいと考えています。

これの問題点は、上記を非同期で行っているため、クライアントが実際に使用される前に作業が完了していない可能性があることです。言い換えると:

var client = program.createClient();
client.doSomething();

doSomething()API定義が設定されていないため失敗します.HTTP XML-RPC応答がプログラムから返されていないためだと思います.

これを改善するにはどのような方法がありますか? 変数に名前を付けて操作できるようにしたいのですがclient、後でメソッドを呼び出して情報を取得します (コールバックを介して返されます)。

4

1 に答える 1

4

次のように設定します。

program.createClient(function (client) {
  client.doSomething()
})

IO があるときはいつでも、非同期でなければなりません。これに対する別のアプローチは、promise/future/coroutine タイプのものを使用することですが、imo、コールバックを愛することを学ぶことが最善です:)

于 2011-08-03T07:20:55.787 に答える