美文网首页
js函数式编程术语之幂等性 Idempotent

js函数式编程术语之幂等性 Idempotent

作者: 龙旗飘扬的舰队 | 来源:发表于2019-01-11 20:00 被阅读14次

幂等性 Idempotent

了解这个概念前,需要知道以下概念

  • [二元运算],它需要三个元素:二元运算符以及该运算符作用的两个变量。如四则运算的加、减、乘、除均属于二元运算。乘法下唯一两个幂等实数为0和1
  • [一元运算],例如 ++ ,正+,负-。比如[高斯符号],它是一个数学符号,形式为方括号[x],表示不大于x的最大整数,高斯符号是幂等的
  • [http方法的幂等],指的是同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的(注意,只是服务器状态,和服务器返回状态无关)
  • 举例
GET /pageX HTTP/1.1是幂等的。连续调用多次,客户端接收到的结果都是一样的:
GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1   
GET /pageX HTTP/1.1

POST /add_row HTTP/1.1不是幂等的。如果调用多次,就会增加多行记录:
POST /add_row HTTP/1.1
POST /add_row HTTP/1.1   -> Adds a 2nd row
POST /add_row HTTP/1.1   -> Adds a 3rd row

DELETE /idX/delete HTTP/1.1是幂等的,即便是不同请求之间接收到的状态码不一样:
DELETE /idX/delete HTTP/1.1   -> Returns 200 if idX exists
DELETE /idX/delete HTTP/1.1   -> Returns 404 as it just got deleted
DELETE /idX/delete HTTP/1.1   -> Returns 404
  • 对接口而言,幂等性实际上就是接口可重复调用,在调用方多次调用的情况下,接口最终得到的结果是一致的。比如,在App中下订单的时候,点击确认之后,没反应,就又点击了几次。在这种情况下,如果无法保证该接口的幂等性,那么将会出现重复下单问题

总结幂等性

  • 概念:一个函数执行多次皆返回相同的结果
  • 作用:一个函数被调用多次时,保证内部状态的一致性
  • 对比:和纯函数相比,幂等主要强调多次调用,对内部的状态的影响是一样的(但多次调用返回值可能不同)。而纯函数,主要强调相同的输入,多次调用,输出也相同且无副作用。==纯函数一定是幂等的==
//虽然是一个面向对象的例子,但是可以说明问题
var Student = function(name,age){
  this.name = name;
  this.age = age;
};
Student.prototype.delName = function(){
  var response = this.name ? this.name + "已被删除":"name不存在";
  this.name = null;
  return response;
}
//对内部的影响是一样的,但是返回值可以不同
var lilei = new Student("lilei",19);
console.log(lilei.delName());//lilei已被删除
console.log(lilei.delName());//name不存在
console.log(lilei.delName());//name不存在

相关文章

  • js函数式编程术语之幂等性 Idempotent

    幂等性 Idempotent 了解这个概念前,需要知道以下概念 [二元运算],它需要三个元素:二元运算符以及该运算...

  • 关于MQ的几件小事(三)如何保证消息不重复消费

    1.幂等性 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程...

  • 函数式编程

    JavaScript函数式编程 函数式编程的基础是一等函数(函数在js中作为一等公民)、作用域(词法作用域,动态作...

  • 《JS函数式编程指南》读书笔记

    JS函数式编程指南 函数是一等公民 函数式编程的目的 函数式编程的目的是使用函数来抽象作用在数据之上的控制流和操作...

  • 浅谈幂等性

    幂等性定义 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编...

  • 深入浅出Rxjs笔记 一

    一.函数式编程 函数式编程要求: 声明式 纯函数 数据不可变js 不算纯粹意义上的函数式编程语言,但是,在js中函...

  • js函数式编程术语之compose组合函数

    compose 组合函数 概念:它将需要嵌套执行的函数平铺。嵌套执行指的是,一个函数的返回值将作为另一个函数的参数...

  • JavaScript中的函数式编程

    JS 函数式编程指南 什么是函数式编程 简单说,"函数式编程"是一种"编程模型"(programming para...

  • 【JavaScript】技术参考资料

    JS基础、高级、进阶 MDN·JavaScript 函数式编程 阮一峰老师的入门简介: 函数式编程初探、函数式编程...

  • 高并发下接口幂等性解决方案

    一、幂等性概念 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方...

网友评论

      本文标题:js函数式编程术语之幂等性 Idempotent

      本文链接:https://www.haomeiwen.com/subject/ebrfdqtx.html