async.promise
Compartilhado
Roda handler(resolve, reject) numa thread nova e faz a thread atual esperar até ele chamar resolve ou reject. Serve para esperar uma função que responde por callback.
any async.promise(function handler)
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| handler | function | Função que recebe resolve e reject. Só a primeira chamada de um dos dois conta. |
Retorno
Os valores passados a resolve. Só funciona dentro de uma thread async. Fora dela, registra um erro e devolve false.
Exemplo
local function delay(ms)
return async.promise(function(resolve)
setTimer(resolve, ms, 1, "done")
end)
end
async.thread(function()
local result = delay(500)
outputDebugString(result)
end)Atenção
reject(valor), ou um erro dentro de handler, vira um erro na thread que espera. Use pcall em volta para tratá-lo.