(rontolisp) docs
← 特殊形式

rontolisp:async

(rontolisp:async (defun name (params...) body...)) / (rontolisp:async (lambda (params...) body...))

通常の定義フォームをラップして非同期版に変えるマクロで、JavaScriptの async function / async (...) => に近い記法を提供します。defun をラップすると rontolisp:async-defun と完全に同じ、lambda をラップすると rontolisp:async-lambda と完全に同じになります — ラッパーは純粋な書き換えなので、セマンティクス (eager start、future、rontolisp:await の配置ルール) とバックエンドのサポートは正規フォームのものがそのまま適用されます。

ラッパーの中身が単一の defun / lambda フォーム以外の場合はエラーになります:

> (rontolisp:async (+ 1 2))
Error: rontolisp:async expects a single (defun ...) or (lambda ...) form to make asynchronous, got: (rontolisp:async (+ 1 2))