将超时存储为函数的属性是否存在问题



将超时存储为函数的属性有问题吗?

/**
* Show HTML Element for a brief period of time
* @param {Object} element element to show
* @param {Boolean} timeout show for a specific time
* @param {Number} duration how long to show message
**/
function showElement(element, timeout = true, duration = 3000) {
element.style.display = "block";
if (timeout) {

if (showElement.elementTimeout != null) {
clearTimeout(showElement.elementTimeout);
showElement.elementTimeout = null;
}
showIcon.elementTimeout = setTimeout(() => {
element.style.display = "none";
}, duration);
}
}

更多信息:
该函数是一组实用程序和函数的一部分。

"任何问题";是一个很难回答的问题。它确实有效,但可能会出现意想不到的问题。

let timeThing = {}
timeThing.timer = (time) => setTimeout(() => console.log('I arrived'), time);
timeThing.timer(5_000);

这将在被调用5秒后记录"我到达",但您的其他代码不会等待它最终被调用。你可能想澄清一下你担心的问题,以获得更好的答案。此外,作为附带说明,它将被称为方法而不是属性。

最新更新