【发布时间】:2022-12-14 06:01:09
【问题描述】:
我正在按照此处所述在我的 Solana 程序中编写事件发射测试:https://github.com/coral-xyz/anchor/blob/master/tests/events/tests/events.js
anchor.setProvider(anchor.AnchorProvider.env());
const program = anchor.workspace.Events;
it("Is initialized!", async () => {
let listener = null;
let [event, slot] = await new Promise((resolve, _reject) => {
listener = program.addEventListener("MyEvent", (event, slot) => {
resolve([event, slot]);
});
program.rpc.initialize();
});
await program.removeEventListener(listener);
assert.isAbove(slot, 0);
assert.strictEqual(event.label, "hello");
});
如果指令成功完成,效果很好。但是,如果在执行过程中发生任何错误,测试代码将永远静默等待事件发出,而这本应不会发生。
谁能建议一种处理此类异常的方法,以免它们被“吞噬”并扔到上层?
【问题讨论】:
标签: javascript solana solana-web3js anchor-solana