如何在JavaScript中动态更改setTimeout(AOP)?

如何在JavaScript中动态更改setTimeout(AOP)?,javascript,settimeout,Javascript,Settimeout,我的目标是: 使用面向方面编程(AOP)更改SDK中任何生产代码的setTimeout,以便: setTimeout可以立即执行,这可能通过从setTimeout的参数[0]获取回调来实现,并在事件触发并运行参数[0]后清除setTimeout 延迟setTimeout,这可能通过从setTimeout的参数[0]获取回调来实现,并在事件触发后清除setTimeout,然后使用参数[0]启动新的setTimeout 能够通过异步方法注入 目标2是问题所在。由于生产脚本可能在注入SDK之前运行

我的目标是:

  • 使用面向方面编程(AOP)更改SDK中任何生产代码的setTimeout,以便:

    • setTimeout可以立即执行,这可能通过从setTimeout的参数[0]获取回调来实现,并在事件触发并运行参数[0]后清除setTimeout

    • 延迟setTimeout,这可能通过从setTimeout的参数[0]获取回调来实现,并在事件触发后清除setTimeout,然后使用参数[0]启动新的setTimeout

  • 能够通过异步方法注入

  • 目标2是问题所在。由于生产脚本可能在注入SDK之前运行,因此SDK重写方法之前使用的setTimeout将退出包装


    问题是,要实现上述两个目标,您的解决方案是什么。

    问题是?@gforce301问题是,要实现上述两个目标,您的解决方案是什么。您的解决方案离AOP尽可能远。您只需要根据应该在其中运行的环境修改全局方法。将此修改后的
    setTimeout
    作为您希望控制的生产代码的一部分。