2015-11-19 4 views
0

Я бы назвал несколько раз одним и тем же API, но с разными ключами, чтобы быстрее получать результаты.Одновременные вызовы API с независимыми обратными вызовами

Дело в том, мне нужно не ждать, чтобы получить результат от первого звонка, чтобы начать второй вызов, и т.д ...

следующие шаги:

1) У меня есть массив со всеми разные клавиши.

2) Это получает данные от API («APIKeys» является массив, который содержит все ключи):

_.map(APIKeys,function(value, index){ 
    var newCount = count+(25*index); 
    parseResult(Meteor.http.get("http://my.api.com/content/search/scidir?query=a&count=25&start="+newCount+"&apiKey="+value+"")); 
}); 

3) вызвать функцию (названный «ParseResult»), который будет форматировать и фильтр результат я получаю от API и сохраняю его в базе данных.

Я хочу вызвать функцию (шаг 3), не ожидая, что я получу данные из API и продолжу с другими ключами во время выполнения запроса.

Знаете ли вы, как я мог сделать это с помощью метеор?

Благодаря

ответ

1

сделай что-нибудь подобное, чтобы использовать HTTP.get() в асинхронном образом:

HTTP.get("http://my.api.com/content/search/scidir?query=a&count=25&start="+newCount+"&apiKey="+value+"", function (error, result) { 
    // parse the result here 
}); 

И увидеть документы здесь: http://docs.meteor.com/#/full/http_get

+0

Я уже пробовал это, но проблема, я хотите одновременно запускать все запросы и запускать их до тех пор, пока они не получат данные и не сохранят их в базе данных. Я нашел решение, использующее Fiber and Future, похоже, работает, но я еще не уверен. – Leon

+0

Я не понимаю, почему то, что я написал, не является хорошим решением, но нормально, если вы нашли способ сделать это уже –

+0

Вы правы, но это не совсем то, что я ищу. Мне нужно делать то, что вы написали, но 1000x одновременно. Поэтому я должен найти решение не ждать, пока первый вызов API завершится, чтобы запустить второй вызов и т. Д., А поскольку API медленный, я должен ждать данные перед его хранением в базе данных. Это довольно сложно объяснить, но в целом мне просто нужно управлять циклом событий с помощью Future and Fiber, теперь он работает как шарм :) – Leon

Смежные вопросы