1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-12-16 05:00:31 +00:00
CC-Tweaked/doc/events/task_complete.md
Jonathan Coates a9547d1d6f
Further licensing work
- Fix several inaccuracies with several files not marking Dan's
   authorship. Most of these are new files, where the code was moved from
   somewhere else:
   - In the public API:  IDynamicLuaObject, ILuaAPI, TaskCallbakc,
     IDynamicPeripheral, UpgradeBase
   - In the ROM: fs, http, require

 - Do not mark Dan as an author for entirely new code. This affects
   DetailHelpers, DropConsumer, FluidData, InventoryMethods, ItemDetails,
   MonitorRenderState, NoTermComputerScreen, Palette, PlatformHelperImpl,
   UploadFileMessage, the Terminal tests, and any speaker-related files.

 - Relicence many files under the MPL where we have permission to do
   so. See  for further details.

Thank you to everyone who has contributed so far! Cannot overstate how
appreciated it is <3.
2023-03-29 23:00:18 +01:00

1.2 KiB

module: [kind=event] task_complete see: commands.execAsync To run a command which fires a task_complete event.

The @{task_complete} event is fired when an asynchronous task completes. This is usually handled inside the function call that queued the task; however, functions such as @{commands.execAsync} return immediately so the user can wait for completion.

Return Values

  1. @{string}: The event name.
  2. @{number}: The ID of the task that completed.
  3. @{boolean}: Whether the command succeeded.
  4. @{string}: If the command failed, an error message explaining the failure. (This is not present if the command succeeded.)
  5. : Any parameters returned from the command.

Example

Prints the results of an asynchronous command:

local taskID = commands.execAsync("say Hello")
local event
repeat
    event = {os.pullEvent("task_complete")}
until event[2] == taskID
if event[3] == true then
  print("Task " .. event[2] .. " succeeded:", table.unpack(event, 4))
else
  print("Task " .. event[2] .. " failed: " .. event[4])
end