Skip to content

Commit

Permalink
улучшена страница lwt
Browse files Browse the repository at this point in the history
  • Loading branch information
dx3mod committed Nov 21, 2024
1 parent c4996a9 commit 21f297b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"Stdlib",
"struct",
"utop",
"Vkashka"
"Vkashka",
"промис"
]
}
24 changes: 21 additions & 3 deletions docs/libraries/concurrency/lwt.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ outline: deep

Также активно используется в среде [MirageOS].

## Пример
## Пример

Пример Lwt-программы, которая запрашивает первую страницу Google и терпит неудачу, если запрос не завершен в течение пяти секунд:

Expand Down Expand Up @@ -42,9 +42,13 @@ let () =
(* ocamlfind opt -package lwt.unix -linkpkg example.ml && ./a.out *)
```

> [!NOTE] Смотрите также
> - [Примеры по работе с TCP/IP](../../in-examples/tcp-ip.md#с-помощью-lwt)

## Ppx

Препроцессинг для `do`-подобного синтаксиса ([`ppx_lwt`](https://ocsigen.org/lwt/4.1.0/api/Ppx_lwt)):
Препроцессинг для do-подобного синтаксиса ([`ppx_lwt`](https://ocsigen.org/lwt/4.1.0/api/Ppx_lwt)). Настоятельно рекомендуется к использованию!
```ocaml
let%lwt user = get_user_from_api "dad" in
(* ... *)
Expand Down Expand Up @@ -80,4 +84,18 @@ let _ =

[MirageOS]: https://mirage.io/
[Ocsigen]: https://ocsigen.org/home/intro.html
[libev]: http://software.schmorp.de/pkg/libev.html
[libev]: http://software.schmorp.de/pkg/libev.html

## Трюки

### Never-промис

Тут мы создаем промис, который никогда не будет зарезолвен, а значит последовательность
не продолжится.

```ocaml
let never = fst @@ Lwt.wait ()
```
```ocaml
let%lwt _ = never in (* ... *)
```

0 comments on commit 21f297b

Please sign in to comment.