【发布时间】:2014-03-22 01:27:55
【问题描述】:
我正在尝试发送网络数据。本质上,我使用的库对消息大小有 16kb 的限制,因此我必须分解较大的消息并将它们分块发送。我的代码的真正简化版本可能如下所示:
function sendInChunks(buffers) {
send(buffers.shift()).then(sendInChunks.bind(undefined, buffers));
}
通过这样的递归实现,我可以发送的数据量受到代码运行平台的堆栈深度限制的限制。我想知道是否有一种方法可以在不受堆栈深度限制的情况下发送我的数据?
注意:在我现在的实际实现中,我实际上是在调用 send 后使用相互递归进行一些检查。在这两个函数中还使用了更高范围的一些状态,但希望不会有太大变化。
编辑:我正在使用 es6 承诺。
【问题讨论】:
-
您能否说明您使用的是哪种 ES6 Promises 实现?如果此模式受堆栈深度限制,则存在错误。
标签: javascript promise stack-overflow