当前位置: 首页 > news >正文

宣城网站seo诊断在哪里能找到做网站的人

宣城网站seo诊断,在哪里能找到做网站的人,免费企业网站建设,wordpress 4.6.1 中文Rxjs的flatMap使用 flatMap是Rxjs比较绕的一个概念#xff0c;这里我们只是讲解如何使用。在Rxjs 4.0版本时叫flatMap,在Rxjs 5.0时被更名为margeMap,现在flatMap作为margeMap的别名使用#xff0c;这是考虑向下兼容。 官方flatMap的定义#xff1a; Projects each sourc…Rxjs的flatMap使用 flatMap是Rxjs比较绕的一个概念这里我们只是讲解如何使用。在Rxjs 4.0版本时叫flatMap,在Rxjs 5.0时被更名为margeMap,现在flatMap作为margeMap的别名使用这是考虑向下兼容。 官方flatMap的定义 Projects each source value to an Observable which is merged in the output Observable. mergeMap(project: function(value: T, ?index: number): ObservableInput, resultSelector: function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any, concurrent: number): Observable名称类型属性描述projectfunction(value: T, ?index: number): ObservableInput函数当应用于源 Observable 发出的项时返回一个 Observable 。resultSelectorfunction(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any可选的函数它用于产生基于值的输出 Observable 和源(外部)发送和内部 Observable 发送的索引。传递给这个函数参数有outerValue: 来自源的值innerValue:来自投射的Observable 的值outerIndex: 来自源的值的 “index”innerIndex: 来自投射的 Observable 的值的 “index”concurrentnumber可选的默认值: Number.POSITIVE_INFINITY可以同时订阅的输入 Observables 的最大数量。 返回: Observable 该 Observable 发出由源 Observable 发出的每项应用投射函数 (和可选的 resultSelector)后的结果并合并从该转化获得的 Observables 的结果。 Demo var source Rx.Observable.of(1,2,3).flatMap(function (x, i) {console.log(x:${x},i:${i});return [x, i];},function (x, y, ix, iy) { console.log(x:${x},y:${y},ix:${ix},iy:${iy});return x y ix iy;}); var subscription source.subscribe(function (x) { console.log(x);}); JSBin运行 x:1,i:0 x:1,y:1,ix:0,iy:0 2 x:1,y:0,ix:0,iy:1 2 x:2,i:1 x:2,y:2,ix:1,iy:0 5 x:2,y:1,ix:1,iy:1 5 x:3,i:2 x:3,y:3,ix:2,iy:0 8 x:3,y:2,ix:2,iy:1 8 分享一下流程 - flatMap将1,2,3数据流一次传入flatMap的第一个回调函数,然后输出”x:1,i:0” - 然后返回[1,0]数组给第二个回调函数这里的1是value,0是index是数据的索引号 - 输出”x:1,y:1,ix:0,iy:0”然后返回2,这里的x参数是outerValue,y是innerValue,ix,是outerIndex,iy是innerIndex - 在订阅的回调函数中输出2 - 其中的innerValue回退到上一次的值对应的索引增加此时值为”x:1,y:0,ix:0,iy:1”然后返回2 - 在订阅的回调函数中输出2 - 接下来flatMap接受值2然后传入第一个回调函数project”x:2,i:1”,返回[2,1] - 将[2,1]传入第二个回调函数resultSelector输出”x:2,y:2,ix:1,iy:0”,返回5 - 在订阅的回调函数中输出5 - 然后resultSelector回调函数又一次被调用传入的参数(2,1,1,1),输出”x:2,y:1,ix:1,iy:1”并返回5 - 在订阅的回调函数中输出5 下面依次类推注意的一点是resultSelector函数会被调用两次第一次innerValue为当前投射的值第二次innerValue为上一次的值。 为了验证我们的想法将flatMap的project函数返回值为[x] var source Rx.Observable.of(1,2,3).flatMap(function (x, i) {console.log(x:${x},i:${i});return [x];},function (x, y, ix, iy) { console.log(x:${x},y:${y},ix:${ix},iy:${iy});return x y ix iy;}); var subscription source.subscribe(function (x) { console.log(x);}); 输出结果 x:1,i:0 x:1,y:1,ix:0,iy:0 2 x:2,i:1 x:2,y:2,ix:1,iy:0 5 x:3,i:2 x:3,y:3,ix:2,iy:0 8 根据结果我们能够发现resultSelector函数的执行次数取决于project的返回值。那么我们继续修改返回值为[x,1] var source Rx.Observable.of(1,2,3).flatMap(function (x, i) {console.log(x:${x},i:${i});return [x,1];},function (x, y, ix, iy) { console.log(x:${x},y:${y},ix:${ix},iy:${iy});return x y ix iy;}); var subscription source.subscribe(function (x) { console.log(x);}); 输出结果 x:1,i:0 x:1,y:1,ix:0,iy:0 2 x:1,y:1,ix:0,iy:1 3 x:2,i:1 x:2,y:2,ix:1,iy:0 5 x:2,y:1,ix:1,iy:1 5 x:3,i:2 x:3,y:3,ix:2,iy:0 8 x:3,y:1,ix:2,iy:1 7 结论 根据这个结果我们能够总结resultSelector函数的y值取决于[x,i]中的i如果i为0,那么y的值第一次等于x然后不发生变化。如果i为1那么y第一次等于x然后需要回退到当前i的值。如果i为2,那么y会从当前的x变化到i这期间iy的值会从0变化为1。 千万不要高兴的太早刚刚的结论我们只是尝试着去总结但是不幸的是错的没错比如我们做如下修改 var source Rx.Observable.of(1,2,3).flatMap(function (x, i) {console.log(x:${x},i:${i});return [2, i];}, // 修改这里function (x, y, ix, iy) { console.log(x:${x},y:${y},ix:${ix},iy:${iy});return x y ix iy;}); var subscription source.subscribe(function (x) { console.log(x);}); 返回结果 x:1,i:0 x:1,y:2,ix:0,iy:0 3 x:1,y:0,ix:0,iy:1 2 x:2,i:1 x:2,y:2,ix:1,iy:0 5 x:2,y:1,ix:1,iy:1 5 x:3,i:2 x:3,y:2,ix:2,iy:0 7 x:3,y:2,ix:2,iy:1 8 这个结果说明什么呢project返回的数组决定resultSelector回调函数中的y,而resultSelector回调函数中的x是不受影响的取决于外界传入的值。当project返回的数组中[2,i],决定y的触发次数如果有两个数组元素就被触发2次有5个数组元素那么就被触发5次。 最终结论 resultSelector project回调函数的返回值决定resultSelector回调函数的参数y即innerValue,同时也决定resultSelector回调函数被触发几次。 如果将flatMap的第二个回调函数去除 var source Rx.Observable.of(1,2,3).flatMap(function (x, i) {console.log(x:${x},i:${i});return [x, i];}); var subscription source.subscribe(function (x) { console.log(x);}); JSBin结果 x:1,i:0 1 0 x:2,i:1 2 1 x:3,i:2 3 2 我们可以看到这是正常的结果flatMap返回Observable的[x,i]数组。
http://www.yutouwan.com/news/472369/

相关文章:

  • 网站建设公司的转型做网站需要招什么条件
  • 南京网站建设公司开发wordpress部署到外网
  • 网站推广的方式有html网页设计主题大全
  • 如何做网站系统黑龙江新闻联播
  • wordpress 做外贸站无锡网知名网站
  • 网站域名注册哪家好网站做专题主题该怎么选
  • 青海省西宁市住房城乡建设厅网站郑州网站建设价位
  • 电商网站怎么做微信支付企业关键词优化公司
  • 荆门网站建设电话咨询百度开放平台 wordpress
  • [网络收集]form表单及网站开发中常用js表单取值方法检测网站是否被做跳转
  • 乡镇网站建设自查报告神马seo教程
  • 网站说服力 营销...wordpress开发者模式
  • 手机网站开发企业关注公众号一单一结兼职app
  • 绍兴公司网站建设 中企动力绍兴湖南做网站的公司排名
  • 怎么做网站点击率监控工具网站美化
  • 如何写网站开发需求全屏网站是什么意思
  • 南京做网站需要多少钱看板娘 wordpress菜单
  • 批量建站怎么赚钱wordpress 短信平台
  • 1.简述网站建设的步骤网片围栏
  • 比较好的网站开发项目燕郊做网站公司
  • 怎样去网上接网站建设和小程序的单青岛辅德网络技术有限公司
  • asp.net个人网站空间建设维护网站运营方案
  • 镇江网站制作公司贵阳双龙区建设局网站
  • 璧山网站建设十大门户网站有哪些
  • 网站建设验收意见邮箱企业邮箱入口
  • 分类网站一天做几条合适成都平台网站建设公司
  • 古楼角网站建设携程旅行网网站策划书
  • 深圳网站提升排名辽源市网站建设
  • 售后服务网站做企业品牌网站的公司
  • 做响应式网站的菜单网站怎么上传到空间