javascript - 使用 Promise 提交带有 submit() 的表单

标签 javascript forms

我正在尝试编写可以按特定顺序执行以下操作的内容:(1) 提交表单 (2) 打印“打印我”。 (3) 等待 3 秒 (4) 打印“也打印我。”

为什么我的代码不能完成这个?

function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms));}
function submitForm() { return new Promise(resolve => document.getElementById('form').submit());}

async function test() {
    wait submitForm();
    console.log("Print me.")
    wait sleep(3000);
    console.log("Print me too.")
};

test();
<form id="form" type="hidden">
    <input value="" id="id" type="text">
    <input value="Submit" type="submit">
</form>

最佳答案

这里有两个问题:

  • 我想你想说 await 而不是 wait
  • submitForm 中,您的 resolve 函数从未被调用,请参阅下面我的更正

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}

function submitForm() {
  return Promise.resolve(() => document.getElementById('form').submit())
}

async function test() {
    await submitForm();
    console.log("Print me.")

    await sleep(3000);
    console.log("Print me too.")
}

test()
<form id="form" type="hidden">
    <input value="" id="id" type="text">
    <input value="Submit" type="submit">
</form>

关于javascript - 使用 Promise 提交带有 submit() 的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360642/

相关文章:

javascript - 未知的 JavaScript 错误

jquery - 用于 iPad 等触摸设备的 Javascript 库

javascript - 在 JavaScript 中声明一个对象供以后使用 - null 还是 {}?

php - 在 PHP 中处理动态数量的表单字段的最佳方法?

delphi - 我可以从模态表单激活现有的非模态窗口吗?

javascript - 存储和输出表单数据

javascript - 无法在 jqueryUI 中重新绑定(bind)可拖动事件

python - Bootstrap 模态不更新模态内容

php - MySQL UPDATE 语句未通过 Web 表单更新数据库数据

javascript - 无法获取使用 eval() 评估的字符串的类型