Retornando o valor do retorno de chamada dentro do Meteor.method
Estou correndo para algo que não entendo com o Meteor. Eu tenho esse método, que leva uma consulta, envia para amazon e, em seguida, no retorno de chamada dessa função tento retornar os resultados.
Meteor.methods({
'search': function(query) {
var bookInfo;
if (Meteor.isServer) {
amazon.execute('ItemSearch', {
'SearchIndex': 'Books',
'Keywords': query,
'ResponseGroup': 'ItemAttributes'
}, function(results) {
bookInfo = results;
console.log(bookInfo);
return bookInfo;
});
}
}
});
Mas quando eu coloquei o seguinte no console no meu navegador (chrome):
Meteor.call('search', 'harry potter', function(error, response) {
console.log('response:', response);
});
Eu entendi o seguinte:
undefined
response: undefined VM13464:3
Acho que entendo que o primeiro indefinido vem do método não retornar nada no cliente, mas o retorno de chamada parece não funcionar.
O amazon.execute (...) está definitivamente retornando algo, já que o console.log logo acima do retorno registra as informações que estou procurando.
Alguma idéia do que está errado e como posso consertar?