Skip to content

Global Functions

Some functions are automatically added when you use jo_libs in your script.

jo.async

A namespace that provides async/promise-based versions of any function, global or from jo.* modules.
All functions accessed through jo.async are automatically wrapped to run in a separate thread and return a promise.

Features

  • Lazy loading: Functions are wrapped only when accessed
  • Multi-return support: Handles functions that return multiple values
  • Chainable promises: Use :next() to chain async operations
  • Parallel execution: Start multiple async operations and await them later

Syntax

lua
jo.async.moduleName.functionName(...)
jo.async.globalFunction(...)

Examples

Basic usage with .next():

lua
jo.async.screen.fadeOut():next(function()
  print('Screen faded out!')
end)

Multi-return values:

lua
-- If myFunction() returns multiple values: a, b, c
jo.async.myModule.myFunction():next(function(a, b, c)
  print(a, b, c)  -- All values are automatically unpacked
end)

Using with :await() (recommended):

lua
local a, b, c = jo.async.myFunction():await()

Or with Citizen.Await:

lua
local results = Citizen.Await(jo.async.myFunction())
local a, b, c = table.unpack(results)

Parallel execution:

lua
-- Launch multiple async operations
local promise1 = jo.async.func1()
local promise2 = jo.async.func2()
local promise3 = jo.async.func3()

-- Do other work while they execute in parallel

-- Await results when needed
local result1 = promise1:await()
local result2 = promise2:await()
local result3 = promise3:await()

Error handling:

lua
jo.async.myFunction():next(
  function(result)
    print('Success:', result)
  end,
  function(error)
    print('Error:', error)
  end
)

jo.ready()

A function fired when all modules are loaded

Syntax

lua
jo.ready(cb)

Parameters

cb : function

The function to execute

Example

lua
jo.ready(function()
  print('All modules are loaded')
end)

jo.stopped()

A function fired when the script is stopped

Syntax

lua
jo.stopped(cb)

Parameters

cb : function

The function to execute

Example

lua
jo.stopped(function()
  print(GetCurrentResourceName() .. ' has been stopped')
end)

Last updated: