微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

消除角度内的功能

如何解决消除角度内的功能

我想在函数内为参数添加去抖

我遇到了问题,因为Angular debounce仅适用于管道并且是可观察的,所以我改用lodash debounce。

每当刷新数据网格表时,它将调用onRefreshTable函数并传递具有表过滤器和排序状态的事件对象。

由于refreshTable()将调用需要较长时间的API,因此我希望将API调用减至最少。

有时,使用相同的参数或不同的参数多次调用表刷新。如果参数不同,则上一个表刷新调用将包含传递给API所需的所有参数。

我的尝试在代码中没有错误的地方,但是它仍然在1秒后使用相同的参数多次调用函数

import * as _ from lodash;
onRefreshTable(event: ClrDatagridStateInterface<any>) {
        _.debounce((event) => {
            this.refreshTable(event)
        },1000);     
}
refreshTable(event) {
   // save state to the rxjs store 
   // call API which is expensive
}

我正在考虑使用distinctUntilChanged,但是在这种情况下似乎不起作用,因为该函数内部的参数是不可观察的。

也许我应该使用_.cloneDeep来比较以前的参数与当前的参数?

解决方法

您可以使用... if( (list[number] % 2) == 0 ) { printf( "%s\n","number is even" ); .... ,如果您有比较的参考值,则像这样传递distinctUntilChanged(_.isEqual)

代码sinppet:

***.next(JSON.parse(JSON.stringify(customerSearchInfo)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。