将属性作为函数中的参数发送

问题描述 投票:0回答:1

我有一个引导警报被多次调用,所以我想编写一个函数来重用。我希望警报在 3 秒后消失并执行一些操作。所以在我的 setTimeout 中我想做类似

location.reload()
textbox.value=""
的事情。

我的代码:

const alerts = (msg, todo) => {
  alert.classList.remove("d-none");
  document.getElementById("msg").innerHTML = msg;
  setTimeout(() => {
    alert.classList.add("d-none");
    todo;
  }, 3000);
};

alerts("message1", location.reload());
alerts("message2", (textbox.value=""));

我的第二个论点是没有被调用。我要解决这个问题吗?

javascript function ecmascript-6 arguments settimeout
1个回答
1
投票

正如 Sergey 在评论中建议的那样,您可以使用 callback function 来实现您想要做的事情。

您在回调中提供的任何内容都将在

todo()
函数中调用
alerts
时执行。

示例:

const alerts = (msg, todo) => {
  console.log(msg)
  setTimeout(() => {
    todo();
  }, 3000);
};

alerts("message1", () => {
  //location.reload()
  console.log("message 1 callback")
});

alerts("message2", () => {
  //textbox.value = ""
  console.log("message 2 callback")
});

© www.soinside.com 2019 - 2024. All rights reserved.