我无法确定如何使用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);
});
我曾尝试观看多个视频,但遇到了麻烦
答案 0 :(得分:0)
Meteor.wrapAsync
采用opHelper.execute
之类的异步方法并使其同步。它可以做到这一点,只要该方法采用的最后一个参数返回一个回调,其中第一个参数是错误,第二个参数是结果。这就像你的方法!
您创建了一个同步的新方法:
var opExecuteSynchronous = Meteor.wrapAsync(opHelper.Execute, opHelper);
第一个参数opHelper.Execute
是您想要异步的方法,第二个参数是方法的上下文(opHelper
)。
您现在可以同步使用此功能:
var results = opExecuteSynchronous('ItemSearch', {
'SearchIndex': 'Books',
'Keywords': 'harry potter',
'ResponseGroup': 'ItemAttributes, Offers'
})
如果在回调中调用err
而不是results
,则会抛出错误。