代码之家  ›  专栏  ›  技术社区  ›  sdgfsdh

使用Suave定制动态响应?

  •  1
  • sdgfsdh  · 技术社区  · 6 年前

    我想用Suave建立一个简单的计数器。

    [<EntryPoint>]
    let main argv =
    
      let mutable counter = 0;
    
      let app =
        choose
          [
            GET
            >=> choose
              [
                path "/" >=> OK "Hello, world. ";
                path "/count" >=> OK (string counter)
              ]
            POST
            >=> choose
              [
                path "/increment"
                >=> (fun context -> async {
                  counter <- counter + 1
                  return Some context
                })
              ]
          ]
    
      startWebServer defaultConfig app
      0
    

    /count 从不更新。

    我想这是因为 WebPart

    1 回复  |  直到 6 年前
        1
  •  2
  •   nilekirk    6 年前

    你的假设是对的 Webpart s是值,因此计算一次。(见 this ).

    path "/count" >=> (fun ctx ->
        async {
            let c = counter in return! OK (string c) ctx
        })