Ich habe zwei Funktionen unten und ich muss sie in einer Sequenz ausführen, nur wenn der erste die nächsten Läufe beendet. Dies geschieht jedoch nicht nur durch die Ausgabe der zweiten Funktion.Run-Funktion, wenn vorherige abgeschlossen wurde
In roher Lua, können wir CALLBACK_MANAGER:FireCallbacks
und CALLBACK_MANAGER:RegisterCallback
verwenden, um dies zu behandeln. Wie könnte ich mit esp8266 fortfahren?
-- test.lua
function increase()
a = 0
tmr.alarm(1,1000,1,function()
if (a == 10) then
tmr.stop(1)
else
a = a + 1
end
print(a)
end)
end
function decrease()
a = 10
tmr.alarm(1,1000,1,function()
if (a == 0) then
tmr.stop(1)
else
a = a - 1
end
print(a)
end)
end
function start()
increase()
decrease()
end
start()
OUTPUT
➜ test git:(master) ✗ nu exec test.lua
➜ test git:(master) ✗ nu terminal
-- output
--- Miniterm on /dev/cu.wchusbserial1410 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
10
9
8
7
6
5
4
3
2
1
Jede Idee? Danke im Voraus!
Sie sollten 'abnahme()' von innen 'erhöhen()' aufrufen, wenn der ganze ansteigende Job fertig ist. –
Ist das ein guter Ansatz? Was, wenn ich einige Zeit brauche, um nur 'erhöhen() 'auszuführen? – hugalves