我知道这个问题已被多次询问(是的,我做了一些研究),但我看不到找到适合我需求的解决方案。将指针/参考传递给变量作为参数
我迄今所做的:
我是构建跟踪的用户有多远向下滚动页面的百分比,并很好地显示到一些进度此功能。这很有效,但是当我在Chrome上打开开发者控制台并查看时间轴选项卡时(这显示了正在运行的图形),我意识到我的代码非常“活跃”。它运行用户向下滚动页面的每个像素,这是非常诚实的。
所以我想,我怎么能改善这个问题,并且我已经想出了一个解决方案,只需要在任何毫秒内执行一次函数。如果该函数已经在{whatever}毫秒中执行过,那么这涉及一个设置为true或false的变量。
我想要完成的任务:
我希望能够设置为,将作为一个标志,以确定是否该功能已经被执行或没有外部变量的引用。
function qeue(fn, interval, status){ // this function name might not be very fitting..
// fn = function to be executed
// interval = function can only run once between the intervals
// status = tricky part..
// This should contain a reference to an external variable that is either true or false
}
这是如何实现的?
侧面说明
如果这种解释是没有帮助的,你仍然没有得到我想要的:
如何传递给一个变量的引用到一个函数,所以函数可以基于该变量的值来操作?
为什么正常参数是不是一个选项 我要实现某种类型的函数内部递归setTimeout的功能,来检查,如果另一个功能已被执行或者不执行,如果我通过这一个参数,这参数在过程中不能改变。
希望你们能帮助我!
谢谢
谢谢你的所有伟大的答案。你让我学习了很多。我正在采取去抖策略!我标记T.J. Crowder是最好的答案,因为这是一个很好的解释,也是第一个答案。但是再次感谢你们!
http://stackoverflow.com/a/4298672 – Teemu
你可以瀑布的承诺,所以你可以在每个进一步的settimeout调用中使用最后的结果。检查这篇文章https://remysharp.com/2015/12/18/promise-waterfall/#comment-3076688933 – Sebas