2015-03-23 5 views
-3

Мне нужно передать var «surl», внутри запроса обратного вызова. Я пытаюсь это сделать, но запуск функции вызывается много раз, и он изменяет значение surl до того, как запрос будет выполнен.как передать var внутри запроса обратного вызова

function start(bd){ 
    if(bd.length > 0){ 
     var zzz = bd.length-1; 
     var sowner = bd[zzz].owner; 
     var surl = bd[zzz].url; 
     request({ 
      url: 'https://myurlapi/'+bd[zzz].owner+bd[zzz].url, 
      followRedirect: false 
     }, function (error, response, body, surl) { 
      console.log(surl); 
     }); 
    } 
} 

Surl вар должен быть принят именно в тот момент, когда запрос называется, не тогда, когда это будет сделано.

+0

Dont передать его. surl будет закрыт, и у вас будет доступ к нему, как обычно. – agconti

+0

Это уже в закрытии, поэтому он будет уже доступен, если вы его пройдете, это может сделать его «неопределенным». – Mritunjay

+0

проблема в том, что я вызову значение surl, но оно уже будет изменено, потому что функция start будет вызвана снова, прежде чем запрос будет выполнен. –

ответ

0

Попробуйте переименовать аргумент surl в функции обратного вызова на что-то другое:

}, function (error, response, body, newUrl) { 
      console.log(surl); 
}); 
Смежные вопросы