Да, в почтовый ящик можно заглянуть, если вы это имеете в виду. Скажем, мы отправили сообщение другому процессу, и теперь мы хотим посмотреть, отправил ли нам другой процесс что-то обратно. Но мы не хотим блокировать при получении:
receive
Pattern -> Body;
Pattern2 -> Body2
after 0 ->
AfterBody
end
попытается сопоставить значения Pattern
и Pattern2
в почтовом ящике. Если ни один из них не подходит, он сразу же отключится и перейдет к AfterBody
. Это позволяет реализовать неблокирующий просмотр в почтовом ящике.
Если процесс является gen_server
, то же самое можно получить, играя с внутренним состоянием и настройкой Timeout
, когда обратный вызов возвращается к элементу управления gen_server
. Вы можете установить время ожидания 0
для достижения этой цели.