Ответ
Идемпотентность означает, что повторные вызовы метода с одинаковыми параметрами дают тот же результат, что и первый вызов, без побочных эффектов.
Пример с HTTP-методами:
GET– идемпотентный (повторные запросы не изменяют состояние сервера)PUT– идемпотентный (обновление ресурса на один и тот жеidдаёт одинаковый результат)POST– неидемпотентный (каждый вызов создаёт новый ресурс)
Пример кода:
// Идемпотентная функция
function updateUserName(userId, newName) {
// Всегда устанавливает одно и то же имя для userId
return db.update({ id: userId, name: newName });
}
// Неидемпотентная функция
function createUser(name) {
// Каждый вызов создаёт нового пользователя
return db.insert({ name });
}