提问人:Radical Randy 提问时间:11/15/2023 最后编辑:Rory McCrossanRadical Randy 更新时间:11/16/2023 访问量:41
如何在返回值 js 之前等待事件
How to wait for an event before returning a value js
问:
我正在制作一个自定义提示,我可以通过这样做来获取返回值,但我遇到了返回值的问题,因为我这样做了,但它从未返回过值。我也遇到过使用 ,但我想知道是否有一种更简单的方法我可能错过了?var = customPrompt()
await
submitButton.onclick = function () {
var userInput = document.getElementById("userInput").value;
closePrompt();
return userInput;
};
答:
0赞
Vladislav Utkin
11/16/2023
#1
正如 Rory McCrossan 在评论中所说,你不能从事件处理程序返回一些东西,因为它只是被调用然后做一些事情,仅此而已。如果你想得到一个输入值,你应该把闭包中的变量调得更高,这样你就可以接受它并使用它。
let inputValue;
submitButton.addEventListener('click', function () {
let input = document.getElementById("userInput");
if(input) inputValue = input.value;
closePrompt();
});
当然,只有当您单击按钮时,您才会收到该值。在此之前,它将等于.undefined
如果我弄错了,请先描述您的案例,并提供更多与您的案例相关的代码示例。
评论
0赞
Radical Randy
11/16/2023
好吧,我想做的是在提交值后立即返回值
0赞
Radical Randy
11/16/2023
事件处理程序在函数中,所以这就是为什么我认为它可能会起作用
0赞
Vladislav Utkin
11/16/2023
你是对的,函数返回一个值。但是你看,你为函数分配了一个链接,而不是定义一个值的位置。它只是一个框,js 将从事件发生时获取此函数。当这种情况发生并且函数将调用时,您将无法获得返回的值,因为它无处可去。
0赞
Vladislav Utkin
11/16/2023
并且,尝试使用 ES5+ 语法。Var 没有被弃用,但 let 和 const 可以更明显地工作。
0赞
Radical Randy
11/16/2023
等等,那我该怎么办?
评论