Process 从Elm进程接收消息

Process 从Elm进程接收消息,process,ipc,elm,Process,Ipc,Elm,我在玩弄Elm,以便更多地了解它们是如何工作的。在本部分中,我尝试实现一个计时器 然而,我遇到了一个障碍:在代码的其余部分,我找不到访问流程任务结果的方法 有那么一秒钟,我希望如果我使用Cmd来解决任务,Elm运行时会很好地为我实现这一效果,但这是一个天真的想法: type Msg =生成的进程Id |时间到了 初始化= (没什么 ,Task.perform Spawned(Process.Spawned backgroundTask) ) 背景任务:Task.Task y(Platform.C

我在玩弄Elm,以便更多地了解它们是如何工作的。在本部分中,我尝试实现一个计时器

然而,我遇到了一个障碍:在代码的其余部分,我找不到访问流程任务结果的方法

有那么一秒钟,我希望如果我使用
Cmd
来解决任务,Elm运行时会很好地为我实现这一效果,但这是一个天真的想法:

type Msg
=生成的进程Id
|时间到了
初始化=
(没什么
,Task.perform Spawned(Process.Spawned backgroundTask)
)
背景任务:Task.Task y(Platform.Cmd.Cmd Msg)
背景任务=
进程1000
--发送消息的可悲尝试从这里开始
|>Task.map(始终
(仅id,Cmd.none)
时间上升->
(无,命令无)
视图状态=
案件状态
只需id->
文本“运行”
没有->
文本“时间到了”

没有用于进程之间通信的公共API

我不确定这是否意味着一个进程无法与应用程序的其余部分通信


有没有办法让
update
函数在进程退出后接收
TimeIsUp

  • 从进程发出虚假HTTP请求
  • 然后通过JavaScript拦截它
  • 把它传给埃尔姆
  • hell端口:(()->msg)->Sub msg
    订阅=
    ofHell(总是时间到了)
    backgroundTask:Task.Task y(Http.Response字符串)
    背景任务=
    进程1000
    --讨厌的黑客从这里开始
    |>任务。然后(总是
    
    Elm进程目前还不是一个成熟的API。单独使用
    进程
    库是不可能的

    有关以下内容,请参见文档中的注释:

    注意:这将创建一种相对受限的流程,因为它无法接收任何消息。用户定义流程的更大灵活性将在以后的版本中提供

    以及整个部分,例如:

    现在,这个库非常稀疏。例如,没有用于进程之间通信的公共API

    因此,(a)
    进程
    无法接收消息,(b)一个
    进程
    无法与另一个
    进程
    对话。但这是否意味着衍生的
    进程
    无法向“主应用程序”发送消息。可能是这样,但我不知道如何发送消息