Javascript等待异步从Firebase检索数据

Javascript wait asynch retriving data from Firebase

本文关键字:检索 数据 Firebase 等待 异步 Javascript      更新时间:2023-09-26

我有以下代码在运行时使用DOM在我的Javascript应用程序中创建一个带有一些输入字段和按钮的表单(在Firebase循环中,我已经删除了它,因为无论有没有它,我都有相同的问题)。

所以这里是我的片段:

var form = document.createElement("FORM");
var fieldset = document.createElement("FIELDSET");
var inputId = document.createElement("INPUT");
inputId.value = "ID";
fieldset.appendChild(inputId);
var inputVillage = document.createElement("INPUT");
inputVillage.value = "Villaggio";
fieldset.appendChild(inputVillage);
var inputImage = document.createElement("INPUT");
inputImage.value = "Immagine";
fieldset.appendChild(inputImage);
var buttonMod = document.createElement("INPUT");
buttonMod.setAttribute("type", "button");
buttonMod.value = "Modifica";
  // HERE my problem
buttonMod.addEventListener("click",tryfunc("Mark"));
  // or (same result)
// buttonMod.onclick(tryfunc);
fieldset.appendChild(buttonMod);
form.appendChild(fieldset);
document.body.appendChild(form);

function tryfunc(name) {
	[...]
	document.write("Hello " + name);
	// I also tried with this instruction found here on stackoverflow
	// (but this generate other problems)
	//name.stopPropagation();
}

我的tryfunc("xxx")在应用程序启动时自动启动,如何防止它?

您正在立即调用您的函数:tryfunc("Mark")。注意,函数调用() parentesis。相反,你需要有匿名功能,并从内部调用你的:

buttonMod.addEventListener("click", function() {
    tryfunc("Mark");
});