为了账号安全,请及时绑定邮箱和手机立即绑定

蹦床递归导致“超出最大调用堆栈大小”

蹦床递归导致“超出最大调用堆栈大小”

不负相思意 2021-04-26 16:19:58
我正在研究区块链,并且正在实现一个非常简单的“工作证明”。工作证明:export function mineBlock(difficulty: number, block) {  const prefix = Array(difficulty + 1).join("0");  function mine(block, difficulty) {    const nonce = block.nonce + 1;    const newBlock = {...block, nonce};    const hash = calculateHash(newBlock);    return hash.substring(0, difficulty) === prefix                ? {...newBlock, hash}                : mine({...newBlock, hash}, difficulty);  }  return trampoline(mine(block, difficulty));}蹦床:export function trampoline(func) {  let result = func;  while(result && typeof(result) === "function") {    result = result();  }  return result;}我仍然收到“超出最大调用堆栈大小”错误,甚至没有蹦床mine功能。我已经阅读了关于StackOverflow的许多其他问题,以及各种博客上的文章,但是其中许多问题仅关注蹦床或TCE解决问题的“阶乘”或“斐波那契”示例……但事实并非如此。我正在使用Node 10,所以我不介意这在浏览器中不起作用。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信