gpt4 book ai didi

javascript - Near-api-js,查看合约方法调用给出: TypeError: JSON. stringify 无法序列化循环结构

转载 作者:行者123 更新时间:2023-12-04 14:54:04 27 4
gpt4 key购买 nike

每当我调用我的契约(Contract)时 view使用方法 near-cli ,它工作正常,终端以 JSON 格式正确输出结果。
但是当我使用 near-api-js 调用相同的方法时我的 angular 项目中的方法,它给出了一个错误:

Error: Uncaught (in promise): TypeError: JSON.stringify cannot serialize cyclic structures.
来自 near-cli 的输出供引用,以及当我通过 near-api-js 调用相同方法时的预期输出:
{
files: [
{
owner: 'some string',
key: 'some string',
cid: 'some string'
}
],
length: 1
}
这可能是什么原因,解决方法是什么?

最佳答案

循环引用示例:

var circularReference = {otherData: 123};
circularReference.myself = circularReference;
JSON.stringify(circularReference);
说明: circularReference通过 cirularReference.myself 指代自己.
Mozilla's website有一个很好的例子说明如何找到和删除循环引用:
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return;
}
seen.add(value);
}
return value;
};
};

JSON.stringify(circularReference, getCircularReplacer());
// {"otherData":123}
您可以修改它而不是删除循环引用。
然而,这是对症治疗。最好的办法是找出首先出现循环引用的原因,如果这是由错误引起的,则修复它。

关于javascript - Near-api-js,查看合约方法调用给出: TypeError: JSON. stringify 无法序列化循环结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68476117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com