问题标签 [thunk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
800 浏览

node.js - 如何在 koa 中使用 thunk 获取 readStream ?

我想在 koa 控制器中传递一个请求,它的工作:

但是使用 thunk ,它似乎不起作用。

这是thunk

0 投票
4 回答
1277 浏览

haskell - Test if a value has been evaluated to weak head normal form

In Haskell, is it possible to test if a value has been evaluated to weak head normal form? If a function already exists, I would expect it to have a signature like

There are a few places that similar functionality lives.

A previous answer introduced me to the :sprint ghci command, which will print only the portion of a value that has already been forced to weak head normal form. :sprint can observe whether or not a value has been evaluated:

It's possible in IO to examine properties that would otherwise be off-limits. For example, it's possible to compare in IO to see if two values came from the same declaration. This is provided by the StableNames in System.Mem.StableName and used famously to solve the observable sharing problem in data-reify. The related StablePtr does not provide a mechanism to check if the referenced value is in weak head normal form.

0 投票
1 回答
157 浏览

c++ - C++ std::function 返回它自己类型的向量(再次递归类型)

理想情况下,我想声明以下类型:

这是一个 thunk,它返回一个后续 thunk 的向量。我能够使用来自Recursive typedef 函数定义的信息来做到这一点: std::function 返回它自己的类型

但是,例如,要将这些东西推入堆栈,我必须执行以下操作:

理想情况下,我想避免RecursiveHelper在使用这些东西的代码中提及任何内容,如果他们想要一堆 action_t,他们应该能够将符合要求的 lambda 直接推送到它上面。

有没有办法做到这一点?

0 投票
1 回答
177 浏览

scala - Scala 提升到 thunk

我有一个函数将另一个函数的结果包装在 Promise 中。我想将其推广为电梯功能,以便我可以在其他地方重新使用它。以下是原始定义:

所以我最终做了以下事情:

我怎样才能重复使用这个?我的意思是,我传入的第二个参数应该是一个 thunk,这样我就可以传入任何函数体,而不管函数体需要什么参数!

当我将提升的功能称为:

这是类型Int => Promise[Int],其中someOtherFunction返回一个Int. 我只想要Promise[Int]我打电话的时候myLiftFunc

0 投票
3 回答
2857 浏览

multithreading - GHC 的 thunk 有多原子?

GHC 如何处理由多个线程(显式线程或评估火花的内部线程)访问的 thunk?是否会发生多个线程评估相同的 thunk、重复工作?或者,如果 thunk 是同步的,如何使性能不受影响?

0 投票
1 回答
1136 浏览

ios - Swift - 应用商店拒绝 - 部分应用转发器用于重新抽象 thunk 助手

我的应用程序被 Apple 拒绝。它作为 ADHOC 构建的工作非常好,但在 Apple 进行测试时崩溃。任何帮助将不胜感激。

我得到的错误是(崩溃日志):

我的代码是 -

下面代码片段的最后一行是第 109 行 -

0 投票
1 回答
3957 浏览

javascript - 使用带有承诺而不是 thunk 的 co 库有什么好处?

所以我一直在阅读co库的用法,我在大多数博客文章中看到的一般设计模式是包装在 thunk 中具有回调的函数。然后使用 es6 生成器将这些 thunk 生成给co对象。像这样:

我可以理解,因为它带来了 Promise 的所有好处,比如更好的可读性和更好的错误处理。

但是,co如果您已经有了可用的承诺,那么使用的意义何在?

为什么不喜欢

对我来说,与 Promise 版本相比,co 使代码看起来更加混乱。

0 投票
1 回答
512 浏览

mysql - 从节点、mysql、koa 中的 thunk 获取数据

我想使用 Koa 和mysqlnode 包从我的 MySQL 数据库中获取一些数据。我在看co-mysql,但自述文件建议使用thunkify直接使用。所以我做了以下事情:

这似乎可行,就像我现在可以做的那样:

但是,我找不到将 thunk 中的行数据返回/生成到我的 races 变量中的方法。我记录它,它显示正确的数据,但是当我尝试将它传回时,它总是返回未定义的。我从回调内部尝试了几种方法,但我似乎无法弄清楚:

return rows yield rows(使回调成为生成器函数) return yield rows ...

我经常得到:TypeError: You may only yield a function, promise, generator, array, or object, but the following object was passed: "undefined"

0 投票
1 回答
804 浏览

javascript - React Redux 应用程序 - 复杂的初始化动作组合在其他承诺完成之前执行最终承诺

我正在开发一个必须管理大量数据的应用程序。在初始化过程中,当用户看到加载条时,必须执行几个 api 调用。

这是我的初始化操作:

到目前为止,它运行良好,但会有 20k 到 50k 篇文章。后端必须执行一些连接才能将数据放在一起,所以如果我尝试将它们整合在一起,我确信我会得到服务器超时。

这个想法是先获取总数,然后循环获取 1k 篇文章。但它不会按我需要的方式工作。我是initFinish在文章数完之后才被派去的,但不是在它们被取走之后。

这是loadArticles动作:

}

我还没有循环,但这不是重点。逻辑保持不变。我返回dispatch(countArticles(key))之前fetchArticles完成。

有没有人暗示?那将是真棒。


编辑

coutArticlesfetchArticles

这里的中间件是一样的es


2. 编辑

如果我改变

Uncaught TypeError: Cannot read property 'then' of undefined上车dispatch(loadArticles(key))


3. 编辑

几天后我还在战斗^^

这是简化的 init 函数,它应该(仅)获取计数结果,然后获取文章:

但现在我已经在这里失败了:

输出:

0 投票
0 回答
1154 浏览

listview - Redux ListView 在动作分派后不重新呈现内容

我使用的 redux 几乎与异步 reddit redux 示例完全一样,使用 thunk 中间件仅在需要时更新状态(shouldFetch)。有没有人注意到 React-Native ListView 在网络调用更新商店后没有捕捉到变化?如果我离开并返回它看起来很好。它只是在网络调用(来自上一个路由)之后才出现。

我的 ListView.js