我正在使用一個需要我傳入「驗證」功能的庫。在這個功能中,我需要驗證一些輸入,如果通過則返回true
,否則返回false
。如何在函數中執行異步工作,並在完成後從該函數返回值?
問題是我需要檢查一個用戶是否存在於數據庫中用於此驗證函數,並且Mongoose調用帶有結果的回調函數。如果在回調中我return
它只是從回調函數而不是我的驗證函數返回。
...
validate: function (username) {
User.findOne({ username: username }, function (err, user) {
if (user)
// User exists so we should return false from the validate function
else
// User does not exist so we should return true from validate.
});
}
我想使用異步庫來解決這個問題,但異步時也調用一個回調,當它完成!
在方孔中的圓釘,不起作用。你可以僞造異步,但你不能僞造同步。 – dandavis