gpt4 book ai didi

javascript - 我可以将参数传递给使用 _.lodash 去抖动的函数吗?

转载 作者:可可西里 更新时间:2023-11-01 01:18:52 25 4
gpt4 key购买 nike

我一直在尝试使用 _lodash.debounce() 并且我让它工作了。然而我是不确定它是否以最佳方式工作。我查看了 lodash 网站上的示例,它们似乎只是不传递参数的简单示例。这是我所拥有的:

$scope.parsePid = _.debounce(function () {
$scope.$apply(function () {
var pid = $scope.option.sPidRange;
if (pid == null || pid === "") {
$scope.pidLower = null;
$scope.pidUpper = null;
}
else if (pid.indexOf("-") > 0) {
pid = pid.split("-");
$scope.pidLower = parseInt(pid[0]);
$scope.pidUpper = parseInt(pid[1]);
}
else {
$scope.pidLower = parseInt(pid);
$scope.pidUpper = null;
}
});
}, 1500);

上面的代码返回一个去抖动的函数 $scope.parsePid。请注意,4号我得到 $scope.option.SPidRange 的值并在函数中使用它。我真的很想以某种方式传入这个参数,而不是通过这种方式获取它。

我这样调用函数:

$scope.$watch("option.sPidRange", function (pid) {
if (pid !== null) {
$scope.parsePid();
}
});

这里的 pid 值应该等于 $scope.parsePid

我想将这个 pid 值传递给 debounced 函数,但我不确定这该怎么做。我尝试了一些不同的东西,但是去抖功能给出了错误。

是否可以将参数传递到去抖动的 function $scope.parsePid() 中?

最佳答案

更新

您应该将参数传递给函数:_.debounce(function (pid) {

An example with debounce

$scope.parsePid = _.debounce(function(pid){
$scope.$apply(function(){
if (pid === null || pid === "") {
$scope.pidLower = null;
$scope.pidUpper = null;
} else if (pid.indexOf("-") > 0) {
pid = pid.split("-");
$scope.pidLower = parseInt(pid[0],10);
$scope.pidUpper = parseInt(pid[1],10);
} else {
$scope.pidLower = parseInt(pid,10);
$scope.pidUpper = null;
}
});
},1500);

我会使用内置的 $timeout

An example with $timeout

var promise;

$scope.parsePid = function(pid){
$timeout.cancel(promise);
promise = $timeout(function(){
if (pid === null || pid === "") {
$scope.pidLower = null;
$scope.pidUpper = null;
} else if (pid.indexOf("-") > 0) {
pid = pid.split("-");
$scope.pidLower = parseInt(pid[0],10);
$scope.pidUpper = parseInt(pid[1],10);
} else {
$scope.pidLower = parseInt(pid,10);
$scope.pidUpper = null;
}
},1500);
};

关于javascript - 我可以将参数传递给使用 _.lodash 去抖动的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21110656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com