首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fp-ts有循环功能吗?

fp-ts有循环功能吗?
EN

Stack Overflow用户
提问于 2022-02-28 13:05:05
回答 1查看 375关注 0票数 1

fp-ts有任何功能来执行带超时的while循环(堆栈安全)吗?像尾巴递归,Y组合器之类的。我见过ChainRec,但除了函数签名之外,实际上没有任何文档。

确切的问题:我需要等待数据库(postgres)在码头容器中启动。我决定通过编写一个循环来确定这一点,该循环扫描docker logs输出的特定正则表达式,每个n毫秒,如果匹配正则表达式或达到超时,则循环停止。超时值、正则表达式和n都是参数。

或者,最好做docker logs --follow并处理STDIN流。但我也不知道该怎么做。

试图在数据库中执行一些东西而不是扫描日志是行不通的。由于某些原因,postgres在引导过程中变得可用,然后在它最终完全启动之前再次变得不可用,在日志中留下一条消息。

EN

回答 1

Stack Overflow用户

发布于 2022-03-17 12:45:32

一种实用的方法是使用带有承诺的setInterval

代码语言:javascript
复制
await new Promise((resolve) => {
  const a = setInterval(() => {
    if(serviceIsAvailable()) {
      clearInterval(a)
      resolve(true)
    }
  }, 500)
})

如果需要,您可以添加一个reject案例,一个截止日期(如果在XYZ秒之后不满意,则拒绝),等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71295448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档