gpt4 book ai didi

javascript - 使用递归 setImmediate() 保留 `this`

转载 作者:搜寻专家 更新时间:2023-10-31 23:17:27 25 4
gpt4 key购买 nike

Salam(意思是你好:))

在我的 node.js 应用程序中,我需要使用 setImmediate() 来隐性调用函数并保持其上下文完整以供下次执行。

考虑以下示例:

var i=3;

function myFunc(){
console.log(i, this);
--i && setImmediate(arguments.callee);
}

myFunc();

输出:

3 // a regular `this` object
2 { _idleNext: null, _idlePrev: null, _onImmediate: [Function: myFunc] }
1 { _idleNext: null, _idlePrev: null, _onImmediate: [Function: myFunc] }

如您所见,在第一次执行后,this 被覆盖。我应该如何解决这个问题?

最佳答案

这样做:

function myFunc(){
console.log(i, this);
--i && setImmediate(myFunc.bind(this));
}

您可能会注意到,我删除了 arguments.callee:its use is deprecated and forbidden in strict mode .

关于javascript - 使用递归 setImmediate() 保留 `this`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30816676/

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