Phoenix Handle Info Self Example: Difference between revisions
From ElixirBlocks
(Created page with "<source> defmodule AppWeb.Sandbox do use AppWeb, :live_view require Logger def mount(_params, _session, socket) do {:ok, assign(socket, :count, 0)} end def handle_event("increment", _params, socket) do # Send a message to ourselves after 1000 milliseconds (1 second) Process.send_after(self(), :delayed_increment, 1000) {:noreply, socket} end def handle_info(:delayed_increment, socket) do new_count = socket.assigns.count + 1 Logger....") |
(No difference)
|
Latest revision as of 05:15, 10 May 2025
defmodule AppWeb.Sandbox do
use AppWeb, :live_view
require Logger
def mount(_params, _session, socket) do
{:ok, assign(socket, :count, 0)}
end
def handle_event("increment", _params, socket) do
# Send a message to ourselves after 1000 milliseconds (1 second)
Process.send_after(self(), :delayed_increment, 1000)
{:noreply, socket}
end
def handle_info(:delayed_increment, socket) do
new_count = socket.assigns.count + 1
Logger.info("Incrementing count to: #{new_count}")
{:noreply, assign(socket, :count, new_count)}
end
def render(assigns) do
~H"""
<div>
<h2>Delayed Counter</h2>
<p>Count: <%= @count %></p>
<button phx-click="increment">Increment After Delay</button>
</div>
"""
end
end