[英]Why is the following _.map function returning nothing?
我创建了一个函数来查找对象:
store.js
store.find = () => {
const query = new Parse.Query(Document)
return query.find()
}
我正在这样使用(并将值分配给this.documents
):
main.js
store.find().then((results) => {
this.documents = _.map(results, (result) => {
return result.toJSON()
})
})
有用。 但是store.find().then( ...)
部分在main.js
重复了很多次,所以我将其变成了一个函数:
store.js
store.fetch = (documents) => {
return store.find().then((results) => {
documents = _.map(results, (result) => {
return result.toJSON()
})
})
}
我这样使用:
main.js
store.fetch(this.documents)
但是没有任何内容分配给this.documents
,并且没有错误消息。 可能是什么问题?
注意: this.documents
是一个对象数组。 例:
[{
title: this.title,
content: this.content,
}, ...
编辑:
我这样做:
store.fetch = (documents) => {
store.find().then((results) => {
documents = _.map(results, (result) => {
return result.toJSON()
})
console.log(documents)
})
}
和documents
被分配:
[Object, Object, Object, ...]
因此,我认为这只是没有将此数组分配给this.documents
。 也许变量不能是参数,而不能同时赋值?
您正在传递this.documents
作为参数,并试图在函数内部修改该属性。 但是,这不起作用,因为Javascript没有“按引用传递”功能 。 仅“按值传递”。
相反,您可以尝试分别传递对象和属性名称:
store.fetch = (obj, prop) => {
return store.find().then((results) => {
obj[prop] = _.map(results, (result) => {
return result.toJSON()
})
})
}
store.fetch(this, 'documents')
尝试让你产生一个.then
经过块store.fetch(this.documents)
并且不要忘记存储上下文
var self = this;
store.fetch(self.documents).then(function () {
console.log(self.documents);
});
还是usign es6
store.fetch(this.documents).then(() => {
console.log(this.documents);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.