0
的方案如下貓鼬中間件發出
場景#1
someSchema.pre('save', function(next){
asyncFunction(function(){
this.sub.value = 'something'
next()
})
})
這將失敗,因爲這改變背景和現在代表asyncFunction,所以我不能在函數中修改輸入的數據。它配備了與this.sub沒有定義
場景#2錯誤的基礎上,從鉤-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沒有工作。
也嘗試過,最初它不起作用。由於某種奇怪的原因,它正在工作。 –
場景#2基於https://github.com/bnoguchi/hooks-js,這是中間件所基於的,他們確實提到可以傳遞變量。事實上它似乎通過了變量,但是它在執行後不會繼續。仍然對此感到好奇。 –