使用Promise使用Submit()提交表单 [英] Submitting a form with submit() using Promise
本文介绍了使用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 ofwait
? - In
submitForm
, yourresolve
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屋!
查看全文