使用Promise使用Submit()提交表单 [英] Submitting a form with submit() using Promise

查看:400
本文介绍了使用Promise使用Submit()提交表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试写一些可以按照特定顺序执行以下操作的内容:(1)提交表格(2)打印打印我". (3)等待3秒钟(4)打印也打印我".

I am trying to write something that could do the following in that particular order: (1) submit a form (2) print "Print me." (3) wait 3 seconds (4) print "Print me too."

为什么我的代码无法完成此操作?

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>

推荐答案

您在这里遇到2个问题:

You have 2 problems here:

  • 我想你想说的是await而不是wait吗?
  • submitForm中,从未调用过您的resolve函数,请参见下面的更正内容
  • I think you wanted to say await instead of wait ?
  • In submitForm, your resolve function was never called, see my correction below

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>

这篇关于使用Promise使用Submit()提交表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆