gpt4 book ai didi

javascript - NodeJS 回调中的局部变量

转载 作者:行者123 更新时间:2023-12-01 02:29:58 25 4
gpt4 key购买 nike

我,我知道,SO 上有很多关于此的信息,但我没有找到适合我的情况的正确答案。

我有这段代码:

for(var i=0; i < shop.collections.length; i++){
if(!shop.collection[i].active){
var data = {
name: shop.collection[i].name,
visible: true
};

myOwnService.createCollection(data, accessToken, function(err, response, body){
shop.collections[i].serviceId = body.id;
})
}

我的问题是shopmyOwnService.createCollection() 中未定义服务。访问shop的正确方法是什么?回调中的变量,那么我如何更新对象以便保存结果?

最佳答案

shop 位于 myOwnService.createCollection 函数的父作用域中,因此可以在其中访问它。

上述代码中唯一的问题是在回调中使用了i,它始终是最后一个值,因为它将在事件循环之后执行。

myOwnService.createCollection 周围使用 IIFE 包装器,以便可以传递 i 的范围。

for (var i = 0; i < shop.collections.length; i++) {
if (!shop.collection[i].active) {
var data = {
name: shop.collection[i].name,
visible: true
};
(function(i) {
myOwnService.createCollection(data, accessToken, function(err, response, body) {
shop.collections[i].serviceId = body.id;
});
})(i);
}
}

关于javascript - NodeJS 回调中的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48380537/

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