- Dokumentacja
- Funkcje wspólne
- isAsync
Funkcja
isAsync
Sprawdza, czy kod działa w zadaniu async, czyli czy może czekać przez await albo sleep bez blokowania.
Składnia
bool isAsync()Zwraca
true wewnątrz zadania async.
Przykład
local function saveAll()
if not isAsync() then return async(saveAll) end
sleep(100)
print("zapisano")
end
saveAll()
Zobacz też
asyncUruchamia funkcję jako zadanie (korutynę). Kod w zadaniu biegnie od razu, aż do pierwszego czekania (sleep,await,waitForEvent). Wtedy oddaje sterowanie, a serwer i gra działają dalej. Gdy czekanie się skończy, zadanie rusza od miejsca, w którym stanęło. Dzięki temu kroki rozłożone w czasie (odliczanie, zapytanie do bazy, odpowiedź HTTP, czekanie na gracza) piszesz po kolei, bez zagnieżdżonych callbacków i timerów.awaitCzeka w zadaniuasyncna wynik. Przyjmuje dwie formy. Pierwsza to funkcja-starter: dostajeresumei uruchamia coś, co kończy się callbackiem (zapytaniedbQuery,fetchRemote, timer). Gdy callback wywołaresume(...),awaitzwraca te same wartości. Druga forma to inne zadanie zasync:awaitczeka, aż się skończy, i zwraca jego wyniki, a jeśli zadanie skończyło się błędem, rzuca ten błąd dalej (złapiesz go przezpcall).sleepWstrzymuje zadanieasyncna podany czas. W tym czasie reszta skryptów, serwer i gra działają normalnie.sleep(0)czeka do następnej klatki serwera (tak jaksetTimerz interwałem 0).