流式输出

更新时间:
复制 MD 格式

E2B SDK 支持在命令运行过程中处理 stdout 和 stderr,适合实时日志、进度展示和长任务观察。

监听命令输出

TypeScript 示例:

const result = await sandbox.commands.run("for i in 1 2 3; do echo step-$i; sleep 1; done", {
  onStdout: (data) => {
    console.log("stdout:", data);
  },
  onStderr: (data) => {
    console.error("stderr:", data);
  },
});

console.log(result.exitCode);

Python 示例:

result = sandbox.commands.run(
    "for i in 1 2 3; do echo step-$i; sleep 1; done",
    on_stdout=lambda data: print("stdout:", data),
    on_stderr=lambda data: print("stderr:", data),
)

print(result.exit_code)

使用建议

流式输出适合前端实时展示或服务端日志采集,但业务逻辑仍应以最终 exitCode 判断命令是否成功。回调参数是输出片段,不应假设一次回调对应一行日志。日志量较大时,应在业务侧做截断、采样或落盘,避免把完整输出保存在内存中。