Javascript 许诺的意外结果
我试图根据填充的元素是否为Javascript 许诺的意外结果,javascript,node.js,Javascript,Node.js,我试图根据填充的元素是否为true | | false来过滤它,然后删除(或不删除)一些字段 也就是说,我实际上是在复制端点的代码,并得到意外的响应: router.get('/endpoint', tokenAuth, function (req, res) { var json_allData; Model.getInfo(req.query.info) .then(function (data) { json_allData = data; retu
true | | false
来过滤它,然后删除(或不删除)一些字段
也就是说,我实际上是在复制端点的代码,并得到意外的响应:
router.get('/endpoint', tokenAuth, function (req, res) {
var json_allData;
Model.getInfo(req.query.info)
.then(function (data) {
json_allData = data;
return Model.filterAnonymous(data.subdocument);
})
.then(function (data) { // << Data here is a subdocument filtered as expected
res.status(200).json({ data: json_allData }); // << WTF??? data has been filtered in the json_allData but I'm not doing anything!
})
.catch(function (error) {
res.status(400).json({ msg: error });
});
});
router.get('/endpoint',tokenAuth,function(req,res){
var-json_-allData;
Model.getInfo(req.query.info)
.then(功能(数据){
json_allData=数据;
返回Model.filterAnonymous(data.subdocument);
})
.then(函数(数据){/当您这样做时
json_allData = data;
将json\u allData
指向与data
相同的内存。这意味着两个变量引用相同的对象
现在当你这么做的时候
Model.filterAnonymous(data.subdocument);
这改变了子文档
属性,该属性是对象数据
正在引用的一部分,并且仍然是相同的对象json\u allData
正在引用。您可能正在修改数组。json\u allData=data;
共享此处发生的引用。