我目前正在开发一个自定义模式弹出窗口实体。当我需要来自用户的文本值时,我将HTML元素显示为可见,然后当他们按下"输入"时,我需要获取他们在文本字段中输入的值。按钮。
问题在于,我尝试做的事情似乎并不容易实现。如果没有Promises,我认为这是不可能的,到目前为止所有尝试都没有奏效。关于可能解决方案的任何想法?
答案 0 :(得分:0)
原来我设法自己搞定了。我曾经假设承诺在它到达代码结束时会以某种方式结束,但事实并非如此:只有在我手动解决它时它才会继续。因此,当我设置按钮的onclick时,只能解析它,它将等待按下按钮。请参阅下面的代码示例:
var modalPopup() = function() {
//Display the popup
document.getElementById("GeneralModalBackground").style.display = "flex";
return new Promise(function(resolve, reject) {
document.getElementById("GeneralSubmitButton").onclick = function() {
//when clicked, resolve the promise with the inputted value
let returnVal = document.getElementById("GeneralTextField").value;
resolve(returnVal);
}
});
}
modalPopup().then(function(textNeeded) {
//do stuff I need to do
});