2

这个错误是什么意思?

错误:13 内部:收到代码为 0 的 RST_STREAM

4

1 回答 1

2

目前,有 3 个端点运行不佳并导致 SDK 无法处理的 RST_STREAM 错误(甚至是 v2.1.1),如果您覆盖 SDK 的默认节点列表,您应该没问题。

已经在 github 中跟踪此问题:https ://github.com/hashgraph/hedera-sdk-js/issues/622

同时,您可以按如下方式处理错误:

承诺

    let retry = true;
    while (retry) {
        await new AccountBalanceQuery()
            .setAccountId(operatorId)
            .execute(client)
            .then(() => {
                retry = false;
                console.log("---> SUCCESS");
            })
            .catch(error => {
                console.error(error);
                if (error.message.includes('RST_STREAM')) {
                    console.log("---> RETRY");
                }
            });
    }
}

尝试/捕获

    let retry = true;
    while (retry) {
        try {
            await new AccountBalanceQuery()
                .setAccountId(operatorId)
                .execute(client);

                retry = false;
                console.log("---> SUCCESS");
        } catch (error) {
            console.error(error);
            if (error.message.includes('RST_STREAM')) {
                console.log("---> RETRY");
            }
        }
    }

这样,如果其他节点没有响应,你会很好地处理它。

于 2021-10-15T21:42:53.017 回答