我正在处理需要同时执行列表并将属性清除设置为true的脚本。他们,我将使用该值来做一些事情,所以我需要它返回已修改的内容。我知道我可以在参数snapshot
中获得完整的修改后的值,但是无论如何,仅可以获得修改后的值?
示例:
this.database.ref(refQuery).transaction(function(messages) {
if(messages) {
var arrayMessages = []
let values = Object.values(messages)
let keys = Object.keys(messages)
for(let i = 0; i < values.length; i++) {
if(!values[i].erase) {
arrayMessages.push({ key: keys[i], value: values[i] })
}
}
console.log('modified',messages[arrayMessages[0].key])
messages[arrayMessages[0].key].erase = true;
}
return messages;
}).then(({ committed, snapshot }) => {
//Get the value changed, where is it?
//I would like to get the messages[arrayMessages[0].key] value object.
})
答案 0 :(得分:1)
没有内置的功能,因此您必须推出自己的解决方案。
一种简单的方法是将您修改的属性存储在更高范围的变量中,然后在最后的then()
中使用它。