Перезагрузка функции кнопкой
Есть кнопка СТАРТ!, на кнопку нажимаешь, и после определенного интервала (10 секунд к примеру) нужно сделать так, чтобы эта кнопка уже имела совершенно другой смысл - ПЕРЕЗАГРУЗКА.
т.е. мне нужно осуществить перезагрузку функции с помощью кнопки, и нужно чтобы это работало бесконечно - старт -> перезагрузка -> старт -> перезагрузка -> старт....
можно конечно просто перезагружать страницу, но это не вариант.
Ответы (1 шт):
Автор решения: Александр Лесив
→ Ссылка
/* create_context возращает функцию, которая будет возвращать вашу функцию
с аргументами, которые вы передадите в create_context */
function create_context(fn, ...params){
return function(){
return function(){
return fn(...params)
}
}
}
async function func_to_exec(param_1, param_2, ...params){
console.log(param_1, param_2, ...params)
// Функция изменяет свои параметры
param_1 = param_1 + 'data'
param_2 = param_1 + ''
// И продолжает выполнятся
}
let context = create_context(func_to_exec, 'par1', 'par2', 'par3')
let button_handler = context();
let button = document.getElementById('but')
button.onclick = function(e){
button_handler()
// Через секунду после нажатия кнопки функция, что выполняется "обнулится", но параметры с которыми она создавалась "запомнены"
setTimeout(function(){
button_handler = context();
}, 1000)
}
<button id="but">Кнопка</button>