From a8361f73c9ab3c4729872ce6ac99bfa4e97cba90 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Fri, 6 Aug 2021 22:01:53 +0200 Subject: Move resume() to util.lua --- async_await.lua | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) (limited to 'async_await.lua') diff --git a/async_await.lua b/async_await.lua index 97d4f7d..6965688 100644 --- a/async_await.lua +++ b/async_await.lua @@ -1,14 +1,15 @@ -lua_async.async_await = {} +function async(func) + return function(...) + local promise = Promise() + promise.__on_resolve = func -function lua_async.resume(co) - local status, err = coroutine.resume(co) + local args = {...} - if coroutine.status(co) == "dead" or err then - lua_async.limiting.unset_limit(co) - end + lua_async.resume(coroutine.create(function() + promise:resolve(unpack(args)) + end)) - if not status then - error("Error (in async function): " .. err) + return promise end end @@ -25,19 +26,3 @@ function await(promise) return unpack(promise.values) end - -function async(func) - return function(...) - local promise = Promise() - promise.__on_resolve = func - - local args = {...} - - lua_async.resume(coroutine.create(function() - promise:resolve(unpack(args)) - end)) - - return promise - end -end - -- cgit v1.2.3