Я новичок в Corona SDK и языке Lua, и у меня возникли некоторые проблемы ..
поэтому у меня есть эта функция, которая отправляет сетевой запрос на мой сайт и через json я получаю данные. Это прекрасно работает.
Проблема в том, что когда я вызываю переменную с ответом на данные вне функции слушателя, она выглядит как nil
. Я установил небольшой таймер, чтобы отслеживать, была ли проблема из-за промежутка времени между запросом и ответом, и кажется, что это так (но я не уверен на 100%) Я не хочу использовать пользовательскую задержку для выполнения этой операции.
Есть ли способ приостановить выполнение сценария до ответа слушателя, а затем продолжить выполнение? Я пробовал с сопрограммами, но я не мог решить это ..
local data
function networkListener( event )
if ( event.isError ) then
print( "Network error!")
else
--print ( "RESPONSE: " .. event.response )
data = json.decode(event.response)
print( data[1].start_date ) --working great
end -- end of else statement
end
network.request( "http://localhost/mysite/myphpmethod" , "GET", networkListener )
print(data) -- error: attempt to index upvalue 'data' ( a nil value )
local function printIt()
print( data[1].start_date)
end
timer.performWithDelay(1000, printIt, 1); -- this works