场景如下
场景#1
someSchema.pre('save', function(next){
asyncFunction(function(){
this.sub.value = 'something'
next()
})
})
这失败了,因为这改变了上下文,现在代表 asyncFunction,所以我不能修改函数中的传入数据。出现 this.sub 未定义的错误
场景 #2,基于来自 hooks-js 的信息
some.Schema.pre('save', function(next){
asyncFunction(function(){
next('something')
});
});
some.Schema.pre('save', function(next, value){
this.sub.value=value
next()
})
这是可行的,只要它修改了值,并且 mongodb 端很好,但是它只是挂起,并且在保存文档后永远不会继续。
难道我做错了什么?有更好的方法吗?或者这是一个错误
场景 #3 最初失败但现在似乎有效
someSchema.pre('save', function(next){
x = this
asyncFunction(function(){
x.sub.value = 'something'
next()
})
})
也就是说,我仍然很好奇为什么场景 #2 不起作用。