我正在尝试编写可以按特定顺序执行以下操作的内容:(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/