【发布时间】:2021-04-16 01:45:30
【问题描述】:
我想知道是否有一些巧妙的方法可以知道函数是在当前刻度(声明函数的刻度)还是 Node.js 事件的下一个刻度(或未来的某个刻度)中调用的循环
例如:
function foo(cb){
// we can fire callback synchronously
cb();
// or we can fire callback asynchronously
process.nextTick(cb);
}
say 会像这样调用 foo:
function outer(){
const currentTickId = process.currentTickId;
function bar(){ //bar gets created everytime outer is called..
if(process.currentTickId === currentTickId){
//do something
}
else{
// do something else
}
}
// foo is always called in the same tick that bar was
// declared, but bar might not be called until the next tick
foo(bar);
}
大多数应用程序不需要这样的东西,但我正在编写一个库,如果可能的话,拥有这个功能会很有用!注意process.currentTickId是我为这个例子编造的
【问题讨论】:
-
我猜这是“可能的” - npmjs.com/package/tick-id
-
请注意,通常最好的做法是始终异步触发回调,但这只是一个说明性示例
-
仅供参考,无法知道函数调用是同步还是异步的状态在 JS 社区中被称为 Zalgo - 这种用法早于“zalgo text”至少 1 1/2 年。它被认为是一种反模式
标签: javascript node.js