Возвращаемое значение из обратного вызова в 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 записывает информацию, которую яищу

Любые идеи, чтоидет не так и как я могу это исправить?

Ответы на вопрос(4)

Ваш ответ на вопрос