博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Angular] Using Pipe for function memoization
阅读量:4983 次
发布时间:2019-06-12

本文共 873 字,大约阅读时间需要 2 分钟。

Sometimes we might have some expensive function to calcuate state directly from template:

{
{ calculate (item.num)}}
calculate(num: number) {   return fibonacci(num); }

 

The ´calculate´ function is a pure function, we can use memoization to imporve the profermance. Angualr pure Pipe is good match for that:

// calculate.pipe.tsimport { Pipe, PipeTransform } from '@angular/core';const fibonacci = (num: number): number => {  if (num === 1 || num === 2) {    return 1;  }  return fibonacci(num - 1) + fibonacci(num - 2);};@Pipe({  name: 'calculate'})export class CalculatePipe implements PipeTransform {  transform(num: number): any {    return fibonacci(num);  }}
{
{ item.num | calculate }}

If we call 'calcualate' with the same params, it will return the cached value.

转载于:https://www.cnblogs.com/Answer1215/p/11446963.html

你可能感兴趣的文章
Linux环境下JDK/Eclipse一键安装脚本
查看>>
HwUI,CMS管理系统模板,漂亮,简单,兼容好
查看>>
特意给我的轩写的小知识
查看>>
LibreOJ #2003. 「SDOI2017」新生舞会
查看>>
sublime text there are no packages available for installation 解决办法
查看>>
Piston Pump Manufacturers - Mobile Cartridge Piston Pump: Advantages
查看>>
我喜欢的几款不错的vim插件
查看>>
eclipse在ubuntu13.04下崩溃crash
查看>>
wpf 右键ListBox可编辑
查看>>
hihocoder offer收割编程练习赛11 C 岛屿3
查看>>
maven+springmvc项目启动时,request mapping not found……
查看>>
提高JetBrains软件的性能
查看>>
ASP.NET:MVC中文件上传与地址变化处理
查看>>
Python 单向链表、双向链表
查看>>
Arrays, Hashtables and Dictionaries
查看>>
JAVA1种C++3种继承方式
查看>>
C#中DataTable排序
查看>>
架构学习提炼笔记(二):架构设计的流程是什么?
查看>>
hive常见问题解决干货大全
查看>>
seq命令
查看>>