Mercurial > prosody-hg
comparison util/promise.lua @ 11486:78d843faaffc
util.promise: Switch order of parameters to join()
This saves awkward fiddlery with varargs and also echoes the
signature of pcall/xpcall.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 25 Mar 2021 15:08:22 +0000 |
| parents | 7d42ed3a8a40 |
| children | 073e53b72792 |
comparison
equal
deleted
inserted
replaced
| 11485:7d42ed3a8a40 | 11486:78d843faaffc |
|---|---|
| 144 resolve(results); | 144 resolve(results); |
| 145 end | 145 end |
| 146 end); | 146 end); |
| 147 end | 147 end |
| 148 | 148 |
| 149 local function join(...) | 149 local function join(handler, ...) |
| 150 local promises, n = { ... }, select("#", ...); | 150 local promises, n = { ... }, select("#", ...); |
| 151 local handler = promises[n]; | |
| 152 promises[n] = nil; | |
| 153 return all(promises):next(function (results) | 151 return all(promises):next(function (results) |
| 154 return handler(unpack(results, 1, n - 1)); | 152 return handler(unpack(results, 1, n)); |
| 155 end); | 153 end); |
| 156 end | 154 end |
| 157 | 155 |
| 158 local function race(promises) | 156 local function race(promises) |
| 159 return new(function (resolve, reject) | 157 return new(function (resolve, reject) |
