2016-07-28 2 views
0

Почему eventFB1undefined за пределами функции обратного вызова graph.get?Почему переменная внутри функции обратного вызова не определена вне ее?

И почему eventFB объект отличается от ответа я получаю за res (например, в журнале консоли как eventFB1) внутри функции обратного вызова graph.get?

var graph = require('fbgraph'); 

var eventFB = graph.get('13216634559578/posts', {limit: 1, access_token: 34ul345kt39884p'}, 
       function(err, res) { 
        var eventFB1 = res; 
        console.log(eventFB1); 
       }); 

console.log(eventFB1); 

Спасибо!

+1

это 'undefined' из-за асинхронный обратный вызов. Вы получаете 'res' позже, затем печатаете' console.log (eventFB1) 'вне' graph.get' –

+0

eventFB1 не определено, потому что оно определено внутри функции. масштаб не является глобальным. Чтобы быть доступным снаружи, он должен быть объявлен как глобальная переменная. Не могли бы вы сделать код с кодом? я попробовал, но он говорит, что require и graph не являются функцией. –

ответ

2

Это происходит потому, что graph.get является асинхронным запроса, тогда как Javascript является синхронным исполнения.

Таким образом, ваш код вне вызова GET выполняется, прежде чем вы получите ответ от запроса

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