diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-08-06 22:01:53 +0200 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2021-08-06 22:01:53 +0200 |
commit | a8361f73c9ab3c4729872ce6ac99bfa4e97cba90 (patch) | |
tree | 98e6f09b21687693a038dc290a38d1d0964386f3 /async_await.lua | |
parent | e6b45a401139b6ed41bf6d5612d1c80d5424b97f (diff) | |
download | lua_async-a8361f73c9ab3c4729872ce6ac99bfa4e97cba90.tar.xz |
Move resume() to util.lua
Diffstat (limited to 'async_await.lua')
-rw-r--r-- | async_await.lua | 33 |
1 files changed, 9 insertions, 24 deletions
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 - |