gpt4 book ai didi

javascript - 集合回调忽略范围变量

转载 作者:行者123 更新时间:2023-12-03 10:45:25 24 4
gpt4 key购买 nike

以下data.id变量在控制台中显示为未定义是否有某种原因?

  Meteor.methods({
'productUpdate': function(_data) {

var data = {
id: _data.id,
name: _data.name.trim(),
sku: _data.sku.toUpperCase(),
retail: _data.retail
};

Products.update(data.id, {$set: data}, function(error, result) {

console.log(data.id); // <------ WHY DOES THIS OUTPUT 'undefined'

if(error)
throw new Meteor.Error('validation', error.message, error.invalidKeys[0].name);
if(result)
logActivity('Products', data.id, 'Product updated');
});
}
});

我很困惑,但我一定错过了一些基本的东西。如果我在回调之外定义其他变量,则它们会起作用,例如甚至传入的 _data.id 也会返回一个值。

最佳答案

看起来 Collection2 正在就地修改 data 对象,而没有进行防御性克隆。尝试自己克隆:

Products.update(data.id, {$set: EJSON.clone(data)}, function () ...)

关于javascript - 集合回调忽略范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581994/

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