Возвращаемое значение из обратного вызова в Meteor.method
Я сталкиваюсь с тем, что я нене понимаю с Метеором. У меня есть этот метод, который принимает запрос, отправляет его в Amazon, а затем в обратном вызове этой функции я пытаюсь вернуть результаты.
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;
});
}
}
});
Но когда я вставляю в консоль моего браузера (chrome) следующее:
Meteor.call('search', 'harry potter', function(error, response) {
console.log('response:', response);
});
Я получаю это:
undefined
response: undefined VM13464:3
Я думаю, что я понимаю, что первое неопределенное происходит от метода, ничего не возвращающего на клиенте, но обратный вызов не 'кажется, не работает вообще.
Amazon.execute (...) определенно что-то возвращает, так как console.log прямо над return записывает информацию, которую яищу
Любые идеи, чтоидет не так и как я могу это исправить?