一个承诺的意外结果
unexpected result for a promise
我试图过滤一个填充的元素取决于它是否为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 });
});
});
希望有人能指点一下。
谢谢你的建议
当你这么做的时候
json_allData = data;
使json_allData
指向与data
相同的内存。这意味着两个变量引用同一个对象。
现在当你做
Model.filterAnonymous(data.subdocument);
这改变了data
所引用对象的一部分subdocument
属性,即仍然是json_allData
所引用的相同对象
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 逻辑和/或运算符-意外的最终结果
- Javascript:函数返回意外结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 按位或意外结果
- 来自 JavaScript 循环的意外结果
- 从 JavaScript 中的图像中读取像素数据会返回半透明像素的意外结果
- 在 JS 中短路空数组会产生意外结果:“[] ||真 == []'
- NodeJS中的Parse Json文件在Node中显示意外结果
- 做了一个javascript小实验,需要你的帮助才能理解意外的结果
- 基于给出意外结果的提示输入的逻辑
- JavaScript Regexp.test返回意外结果
- 推入数组会产生意外的结果
- 键控产生意外结果.HTML5游戏
- Javascript do/while循环显示意外结果
- 来自 CSS 和 jQuery 的意外结果
- MongoDB mapReduce方法意外结果
- 具有意外结果的 Javascript 函数参数
- 如何在集合中的项上触发 jQuery 事件(意外的 jQuery 结果来自 $._data() 与集合的第一个元素)
- 在 JavaScript 中解析日期字符串的意外结果