Javascript 如何调用一个函数作为参数,我尝试了这个不工作?

Javascript 如何调用一个函数作为参数,我尝试了这个不工作?,javascript,html,Javascript,Html,现在我试图调用一个函数作为另一个函数的参数,为什么这对我不起作用,没有在屏幕上显示任何内容, 在回调函数中也尝试过这样做 不要介意preventDefault(),只是练习一下而已 let button = document.getElementById("dugme"); function luka() { return new Promise((res, rej) => { res("auto"); rej("kamion"); }); } button.ad

现在我试图调用一个函数作为另一个函数的参数,为什么这对我不起作用,没有在屏幕上显示任何内容, 在回调函数中也尝试过这样做 不要介意preventDefault(),只是练习一下而已

let button = document.getElementById("dugme");
 function luka() {
  return new Promise((res, rej) => {
    res("auto");
    rej("kamion");
  });
}
button.addEventListener("submit", (ev, luka) => {
  let bobo = document.getElementById("test");
  if (!bobo) ev.preventDefault();
  else {
    luka()
      .then(info => {
        info = bobo;
        let luna = document.createElement("h1");
        info.innerText = "Bobo je kralj";
        luna.append(info);
      })
      .catch(err => {
        console.error(err);
      });
  }
});
///////////HTML/////////////

<body>
    <div id="test"></div>
    <button type="submit" id="dugme">Dugme</button>
  </body>

达格米

当您将信息附加到luna时,信息不再位于dom中,因为您从未将luna(h1标记)附加到dom中的节点,因此您会错过以下内容:

luka()
  .then(info => {
    info = bobo;
    let luna = document.createElement("h1");
    info.innerText = "Bobo je kralj";
    luna.append(info);
    document.body.appendChild(luna); // <-- this is missing
  })
luka()
。然后(信息=>{
info=bobo;
让luna=document.createElement(“h1”);
info.innerText=“Bobo je kralj”;
luna.append(信息);

document.body.appendChild(luna);//此处无需调用promise函数作为参数。 一旦声明了它,您就可以在另一个函数中简单地使用它

此外,还需要使用
document.body.appendChild(luna)
luna
附加到dom中

以下是完整的代码:

let button = document.getElementById("dugme");
 const luka = () => {
  return new Promise((res, rej) => {
    res("auto");
    rej("kamion");
  });
}
button.addEventListener("click", (ev) => {
  let bobo = document.getElementById("test");
  if (!bobo) ev.preventDefault();
  else {
    luka()
      .then(info => {
        info = bobo;
        let luna = document.createElement("h1");
        info.innerText = "Bobo je kralj";
        luna.append(info);
        document.body.appendChild(luna)
      })
      .catch(err => {
        console.error(err);
      });
  }
});

你到底想在这里干什么,伙计?
luka()
不起作用,因为你有一个名为
luka
的局部变量,它覆盖了另一个实例。我厌倦了将函数luka作为参数从上面传递到那里,所以我可以调用它,你将如何在这里写这段代码,以使其生效。然后在else内部。除了局部变量问题,你永远不会将luna附加到dom节点,这样信息就不会可见的