首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将Pyodide输出显示为textarea元素

无法将Pyodide输出显示为textarea元素
EN

Stack Overflow用户
提问于 2022-09-17 15:26:43
回答 1查看 27关注 0票数 0

我很难将pyodide输出显示到一个名为“output”的textarea元素。我使用react/next.js,当页面加载时,我希望在textarea框中看到python输出,但它只显示以下内容:

代码语言:javascript
复制
>>> 
[object Promise]

代码在控制台中运行良好。我只是不能在文本区域显示。如果有更好的方法将其附加到文本区域,我很高兴看到任何新的建议。

这是我正在使用的代码:

代码语言:javascript
复制
export default function Home() {
  function addToOutput(stdout) {
    output.value += ">>> " + "\n" + stdout + "\n";
  }

  async function main() {
    const pyodide = await loadPyodide({
        indexURL: "https://cdn.jsdelivr.net/pyodide/v0.20.0/full/"
    });

    let stdout = pyodide.runPythonAsync(`
        print("Hello World")  
    `);

    addToOutput(stdout);
  }

  main();

  return (
    <textarea readonly className="code-output" id="output" name="output"></textarea>
  )
}

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-09-17 16:27:27

消息[object Promise]意味着结果是一个承诺而不是一个字符串。你必须解决承诺(等待)才能得到预期的结果。

在您的示例中,runPythonAsnc()返回了一个承诺,随后执行了Python代码。您的代码试图显示尚未发生的结果。

注意:您正在调用结果stdoutRunPythonAsync()返回,即转换为JavaScript.的Python代码的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73756151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档