0

Meteor を使用して wrapAsync を適切に使用する方法がわかりません。現在、node-apac と Amazon Product Advertising API を使用しています。

次のコードを実行しようとしている場合、非同期で実行するにはどうすればよいですか。

opHelper.execute('ItemSearch', {
    'SearchIndex': 'Books',
    'Keywords': 'harry potter',
    'ResponseGroup': 'ItemAttributes, Offers'
}, function(err, results) {
    console.log(results);
});

いくつかのビデオを見ようとしましたが、うまくいきません

4

1 に答える 1

0

Meteor.wrapAsyncのような非同期メソッドを取り、opHelper.executeそれを同期にします。メソッドによって取得された最後のパラメーターが、最初のパラメーターがエラーで、2 番目のパラメーターが結果であるコールバックを返す限り、これを行うことができます。これはあなたの方法と同じです!

同期する新しいメソッドを作成します。

var opExecuteSynchronous = Meteor.wrapAsync(opHelper.Execute, opHelper);

最初のパラメータopHelper.Executeは非同期にするメソッドで、2 番目のパラメータはメソッドのコンテキストです ( opHelper)。

これを同期的に使用できるようになりました。

var results = opExecuteSynchronous('ItemSearch', {
    'SearchIndex': 'Books',
    'Keywords': 'harry potter',
    'ResponseGroup': 'ItemAttributes, Offers'
})

errがコールバックの代わりに呼び出された場合、これはエラーをスローしresultsます。

于 2014-12-22T21:08:14.170 に答える