[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/async 1dd865c 09/60: Add some documentation in README f
From: |
Stefan Monnier |
Subject: |
[elpa] externals/async 1dd865c 09/60: Add some documentation in README for async-let. |
Date: |
Tue, 8 Oct 2019 10:11:28 -0400 (EDT) |
branch: externals/async
commit 1dd865c30e4ea1066d01680bd431b4f133d911fd
Author: Thierry Volpiatto <address@hidden>
Commit: Thierry Volpiatto <address@hidden>
Add some documentation in README for async-let.
---
README.md | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/README.md b/README.md
index e19fb5a..91dfffc 100644
--- a/README.md
+++ b/README.md
@@ -147,3 +147,39 @@ present). It is intended to be used as follows:
,(async-inject-variables "\\`\\(smtpmail\\|\\(user-\\)?mail\\)-")
(smtpmail-send-it)))
'ignore)
+
+## async-let
+
+Allow to establish let bindings asynchronously.
+Each value of binding can refer to the symbols already bound in BINDINGS (like
`let*`).
+FORMS are executed once BINDINGS have been evaluated, but without blocking
emacs.
+
+Examples:
+
+```elisp
+(async-let ((x "hello")
+ (y "world"))
+ (message "%s %s" x y))
+
+(async-let ((x (* 5 2))
+ (y (+ x 4))
+ (z (+ x y)))
+ (message "%d + %d = %d" x y z))
+
+```
+
+Note that if you bind something to nil and set it afterward in body, the
evaluation
+of this binding will NOT be asynchronous, but will happen in you current
emacs, blocking it
+if the evaluation of this value is sufficiently important, e.g:
+
+```elisp
+(async-let ((x "hello")
+ (y "world")
+ z)
+ (setq z (+ 1 2)) ;; Huge calculation of Z will block emacs.
+ (message "%s %s %d" x y z))
+
+```
+
+IOW if the calculation of Z is huge and you want it asynchronous evaluate it
in BINDINGS
+but not in FORMS.
- [elpa] externals/async updated (1794ea4 -> f61f1db), Stefan Monnier, 2019/10/08
- [elpa] externals/async 5813c24 04/60: Add some string escapes, Stefan Monnier, 2019/10/08
- [elpa] externals/async 0190fb8 05/60: Allow passing any value to async-let bindings., Stefan Monnier, 2019/10/08
- [elpa] externals/async 9ff4d18 12/60: Revert renaming of async-wait to async--wait (#71)., Stefan Monnier, 2019/10/08
- [elpa] externals/async d1273c8 13/60: Using sleep-for instead of sit-for in async-wait prevent infloop (#71)., Stefan Monnier, 2019/10/08
- [elpa] externals/async 8bc0678 01/60: Fix home url in *pkg.el., Stefan Monnier, 2019/10/08
- [elpa] externals/async a2196f7 03/60: Add `async-let' macro, Stefan Monnier, 2019/10/08
- [elpa] externals/async 1dd865c 09/60: Add some documentation in README for async-let.,
Stefan Monnier <=
- [elpa] externals/async 57f5d81 06/60: Allow passing multiple forms to async-let, Stefan Monnier, 2019/10/08
- [elpa] externals/async 31b1691 02/60: Don't query in set-visited-file-name., Stefan Monnier, 2019/10/08
- [elpa] externals/async 8242878 08/60: Merge pull request #69 from jwiegley/async_let, Stefan Monnier, 2019/10/08
- [elpa] externals/async 2018523 15/60: Inject nsm-* vars in smtp-mail for emacs-25+ (#75)., Stefan Monnier, 2019/10/08
- [elpa] externals/async 666066d 14/60: Merge pull request #72 from jwiegley/Fix_async_ready, Stefan Monnier, 2019/10/08
- [elpa] externals/async 54977d6 10/60: Improve formatting in README., Stefan Monnier, 2019/10/08
- [elpa] externals/async e1a3735 20/60: Merge branch 'master' of github.com:jwiegley/emacs-async, Stefan Monnier, 2019/10/08
- [elpa] externals/async d6222c2 22/60: Ensure wdired-use-interactive-rename is disabled., Stefan Monnier, 2019/10/08
- [elpa] externals/async d422df5 24/60: Add new var to allow calling emacs with -Q or -q (#80)., Stefan Monnier, 2019/10/08
- [elpa] externals/async c3b297f 27/60: Merge pull request #83 from darkfeline/lighter, Stefan Monnier, 2019/10/08