严格模式下取得函数调用栈

这个很简单,以console.log举例吧

由于严格模式不能使用callercalleearguments,因此使用Error来拿到调用栈。

代码如下:


let log = console.log;
console.log = function myLog(...args){
    try{
        log(...args);
        throw(new Error("[!] - 检查到未被移除的Log调用:"));
    }catch(e){
        log(e.stack);
    }
}

大概就是两步,第一步,把这个函数拿出来,第二步,用另一个函数代理,然后抛出错误,打印e.stack即可

在尝试寻找并移除一个log提示时,为了打印该log的调用栈,而整理了这个方法。

KOA-Vcenter开发手册 3

Vcenter 踩坑记

“过度设计等于没有设计”

前言

Vcenter的后台框架经过一段时间的填充已经大体有模有样了,后台专门设置一个APIController,调用各个不同的模块来提供服务。但是在编码之余却又发现了一个坑点。

- 阅读剩余部分 -

一次强迫症DEBUG的经历

最近在写Vcenter的时候,KOA老是会蹦出来一句

koa deprecated Support for generators will be removed in v3. See the documentation for examples of how to convert old middleware https://github.com/koajs/koa/blob/master/docs/migration.md webpack:\server\server.js?, <anonymous>:40:5

意思是你用了一个 KOA1时代的生成器写法,非常古老了,下个版本不兼容了,赶紧换了吧。

其实这个也没啥影响,只是一个warning,但是本强迫症看着非常难受。

于是有了以下非常焦躁的DEBUG经历。

- 阅读剩余部分 -

CTRL+i竟然是chrome的保留快捷键

一次开发,测试了半天,本想找个与一般快捷键不冲突的快捷键。

瞄上了 ctrl+i,结果总是捕获不到事件。

测试了半个小时都没能解决,结果换成其他按键,一秒过……