Я изучаю библиотеку async node.js для реализации курсора (https://dev.twitter.com/docs/misc/cursoring) в node.js.While loop with javascript
whilst
выглядит как функция, которую я ищу, но мое дело немного другое. Каждый раз, когда я делаю запрос GET
, я должен ждать, чтобы получить ответ, а затем изменить значение курсора.
В async
документации это пример Thats приведены для whilst
var count = 0;
async.whilst(
function() { return count < 5; },
function (callback) {
count++;
setTimeout(callback, 1000);
},
function (err) {
// 5 seconds have passed
}
);
Я пытался делать что-то вроде его реализовать твиттер курсор навигации, но не делает это не кажется, работает:
async.whilst(
function(){return cursor != 0},
function(callback){
oa.get(
'https://api.twitter.com/1.1/friends/list.json?cursor=' + cursor + '&skip_status=true&include_user_entities=false'
,user.token //test user token
,user.tokenSecret //test user secret
,function (e, data, res){
if (e) console.error(e);
console.log("I AM HERE");
cursor = JSON.parse(data).next_cursor;
}
)
},
function(){
console.log(cursor);//should print 0
}
)
EDIT: console.log («Я ЕСМЬ ЗДЕСЬ») в моем запросе на запрос запроса вызывается только один раз, и после этого ничего не происходит.
Я не думаю, что функция в середине должна иметь функцию обратного вызова, которая изменяет счетчик и whilst
работает только тогда, когда счетчик изменяется в реальной функции не на его обратный вызов ..
http://stackoverflow.com/questions/18156937/while-loop-in-javascript-with-a-callback/18158547#comment26655506_18158547 ответ без использования асинхров были дано здесь .. –
Вы можете уточнить, как «Кажется, он работает?» Какую ошибку вы видите при запуске скрипта? –
Что касается вашего редактирования, это нормально, когда обратный вызов изменяет переменную 'counter'. Можете ли вы попробовать распечатать «данные» в обратном вызове, чтобы узнать, какой ответ вы получаете от Twitter? –