File: url-future.el.html

Make a url-future (basically a defstruct):
(make-url-future :value (lambda () (calculation goes here))
  :callback (lambda (future) (use future on success))
  :errorback (lambda (future &rest error) (error handler)))

Then either call it with url-future-call or cancel it with url-future-cancel. Generally the functions will return the future itself, not the value it holds. Also the functions will throw a url-future-already-done error if you try to call or cancel a future more than once.

So, to get the value:
(when (url-future-completed-p future) (url-future-value future))

See url-future-tests and the code below for further details.

Defined variables (0)

Defined functions (25)

copy-url-future(ARG)
make-url-future
make-url-future--cmacro
url-future-call(URL-FUTURE)
url-future-callback(CL-X)
url-future-callback--cmacro(CL-WHOLE-ARG CL-X)
url-future-cancel(URL-FUTURE)
url-future-cancelled-p(URL-FUTURE)
url-future-cancelled-p--inliner(INLINE--FORM URL-FUTURE)
url-future-completed-p(URL-FUTURE)
url-future-completed-p--inliner(INLINE--FORM URL-FUTURE)
url-future-done-p(URL-FUTURE)
url-future-done-p--inliner(INLINE--FORM URL-FUTURE)
url-future-errorback(CL-X)
url-future-errorback--cmacro(CL-WHOLE-ARG CL-X)
url-future-errored(URL-FUTURE ERRORCONS)
url-future-errored-p(URL-FUTURE)
url-future-errored-p--inliner(INLINE--FORM URL-FUTURE)
url-future-finish(URL-FUTURE &optional STATUS)
url-future-p(CL-X)
url-future-p--cmacro(CL-WHOLE-ARG CL-X)
url-future-status(CL-X)
url-future-status--cmacro(CL-WHOLE-ARG CL-X)
url-future-value(CL-X)
url-future-value--cmacro(CL-WHOLE-ARG CL-X)

Defined faces (0)