Bacon.js 超出最大调用堆栈

2023-12-29

我正在尝试生成类似的流Bacon.fromPoll for requestAnimationFrame

为什么下面的代码会产生一个“超出最大调用堆栈" error?

function rafSequence() {
    var raf = Bacon.fromCallback(function(callback) {
        requestAnimationFrame(function() {
            callback(Date.now());
        });
    });
    return raf.merge(raf.flatMap(rafSequence));
}

rafSequence().log();

我想merge()当 2 个流之一抛出异常时,会进行垃圾收集Bacon.End (the raf in raf.merge(...)。那么为什么会出错呢?

更新: 我已经能够实现一个工作版本,如下所示:

Bacon.repeat(() => Bacon.fromCallback(requestAnimationFrame));

我仍然感兴趣为什么merge()没有清理。


在当前的 Bacon.js 实现 (0.6.x) 中,所有基于递归的“无限”序列都必然会失败,因为在每一步中,“流堆栈”都会变得更深。我确信有一种方法可以优化实现以更好地应对这种结构,但这绝非微不足道。

对于您的具体情况,fromGenerator方法将使您的实现更简单。已经有相关代码了这次提交 https://github.com/baconjs/bacon.js/commit/82e860f74ced4a0a2782b06a546bdc9924e321dc,如果你有兴趣的话。如果您有兴趣解决此问题,我建议您使用 Github Issues。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bacon.js 超出最大调用堆栈 的相关文章

随机推荐

  • java.lang.ClassFormatError:类中的字段修饰符非法

    我正在尝试使用实现一个简单的 TabGroup环境服务 http tapestry apache org environmental services html 我的代码如下所示 public class TabPanel Inject p
  • 如何仅使用 SwiftUI 从 @main App 访问 NSWindow?

    At this answer https stackoverflow com a 60359809 4307080该解决方案适用于 Scene 和 swiftUI 但是使用 main 像 main struct MyApp App Stat
  • 如何指定 postgres 表的主键种子?

    我有一个 postgres 表 其中包含数据 其中主键已由注入数据的代码设置 假设主键是 0 49 如何指示 postgres 在下一次插入的主键列上以 50 开头 目前 所有没有设置主键的插入都会导致重复的 ID 问题 因为它从 0 开始
  • 尽管 magic_quotes 已关闭,但仍转义字符串?

    我在 php ini 中禁用了 magic quotes 但我的表单中仍然会出现转义字符串 注意 我在 WordPress 的主题中运行它 我实际上已经弄清楚了这一点 只是想将我的解决方案留在这里 以防其他人可能会发现它有用 WordPre
  • 访问对话流履行中先前的后续意图参数

    我使用内联编辑器中提供的默认对话流代码 基于dialogflow fulfillment 0 5 0 来整理多个后续意图中给出的所有参数 我有一个设置 其中后续意图提出问题 从而产生提出所有问题的最终意图 从对话框流控制台内以前的意图中提取
  • 为什么 element.click() 在 Cefsharp 中不起作用?

    我尝试执行下面的脚本Cefsharp单击 DIV 元素 但不起作用 private static string ClickUnreads function let chatsEl document querySelectorAll infi
  • 简化的行梯形形式

    R中是否有一个函数可以产生reduced row echelon form的矩阵 This http cran r project org doc contrib Hiebeler matlabR pdf参考文献说没有 你同意 I don
  • Objectify 库可以在 GAE 之外使用吗?

    我想使用 Google Cloud 数据存储区 不过 我没有使用GAE 我还可以使用 Objectify 库吗 如果是这样怎么办 该文档没有说明如何配置它以针对数据存储进行身份验证 不 你不能 这里有一个来自创作者的评论 https gro
  • 如何在 C# 中基于现有委托类型创建新的委托类型?

    有什么方法可以基于现有的委托类型创建新的委托类型吗 就我而言 我想创建一个委托MyMouseEventDelegate其功能与EventHandler
  • 如何隐藏 Mac/OSX 拖放 JTable 选择框

    在 JTable 上执行拖放操作时 拖动时会出现所选单元格 选择框 的轮廓 我怎样才能覆盖该行为并且除了特殊光标之外不显示任何内容 在 Windows 和 OSX 中运行以下代码显示了我想要覆盖的行为 import java awt Bor
  • ASP.NET 身份检查用户角色不起作用

    我有一个 ASP NET MVC 5 应用程序 我使用标准 ASP NET 身份提供程序进行用户和角色管理 重要的是我使用自己的存储库项目中的 IdentityUser 但这似乎没问题 我可以注册 登录 编辑用户并管理他们的角色 我使用以下
  • Azure Devops - 按代理池 ID 获取发布定义

    我试图使用 NET 客户端库查找配置为使用特定代理池的所有构建和版本 假设agentPoolId 我可以得到所有的构建定义 如下所示 connection is of type VssConnection using var buildCl
  • 配置 EMR 以使用 s3a 而不是 s3 进行 Spark.sql 调用

    我对 Spark sql 的所有调用都失败 并在堆栈跟踪中出现错误 1 below 更新 2我已经把注意力集中在这个问题上 它是 sts AssumeRule 的 AccessDenied 任何线索都值得赞赏 User arn aws st
  • 在 Spark 2.3.0 的结构化流中禁用 _spark_metadata

    我的结构化流应用程序正在写入镶木地板 我想摆脱它创建的 spark metadata 文件夹 我使用了下面的属性 看起来不错 conf spark hadoop parquet enable summary metadata false 当
  • 如何从 Java 中的套接字获取客户端名称?

    抱歉 简单的问题 但我无法使用谷歌或教科书在任何地方找到答案 我有一个简单的服务器 用户通过 java 中的套接字连接到该服务器 我想使用这个 Java 套接字来检索用户客户端名称 这可能吗 我知道我可以使用 getInetAddress
  • 数据绑定到以编程方式创建的数据表

    假设我有一个这样的数据表 DataTable dt new DataTable Woot dt Columns AddRange new DataColumn new DataColumn ID typeof System Guid new
  • 使用 JavaScript 对 DIV 进行动画处理会在 Chrome 上呈现工件

    作为一个实验 我尝试在 JavaScript 中复制 AS3 的 Sprite 功能 而不使用画布对象 我认为使用绝对定位的 div 并操作它们的 css 属性是理所当然的 但是在 Chrome 中 动画引入了奇怪的工件 似乎是因为重绘问题
  • 如何同时支持es模块和commonjs模块

    我们从 npm 安装的一些包同时支持 commonjs 和 es 模块 这些包可以按如下方式导入 import express from express or const express require express 我创建了一个包我已经
  • Delphi 是否提供用于表单创建通知的事件处理程序?

    Delphi 是否提供某种用于表单创建的事件或挂钩 或者更一般地说 表单生命周期事件 因此 如果在代码中的某处创建并显示表单 模态或非模态 动态或在通常的应用程序启动阶段 Delphi 会调用一个事件处理程序 该处理程序允许在显示之前记录
  • Bacon.js 超出最大调用堆栈

    我正在尝试生成类似的流Bacon fromPoll for requestAnimationFrame 为什么下面的代码会产生一个 超出最大调用堆栈 error function rafSequence var raf Bacon from