[英]asynchronous JavaScript static function variable
我在javascrip(nodejs服務器)中的“靜態”功能有問題。
User.create = function(data, _callback){
var node = db.createNode(data);
var _user = new User(node);
_user.save(function(err){
if(err) return callback(err, null);
_user.index(function(err){
if(err) return callback(err, null);
callback(null, _user);
})
})
};
如果我兩次調用此函數,則內部回調函數中的_user變量將使用新值,似乎它會覆蓋函數var而不是分配新值。
我需要調用此函數來分配新變量,因此它在不更改_user變量的情況下等待保存和索引函數完成。
JavaScript變量的確是函數作用域的,因此不會對var _user
在后續運行中未定義新變量的任何解釋。
查看代碼,我會更懷疑您的User構造函數中發生的事情-也許它包含某些范圍界定或其他邏輯問題,導致在后續調用中創建相同的用戶。 類似的“懷疑”將是傳入的data
參數,以及db.createNode()
。 僅建議這些方面,因為更有可能出現程序問題,而不是JavaScript不遵守規則:)
另外,我注意到您的User.create
函數接受一個名為_callback
的參數,但稍后將調用callback
。 我不知道這是您的示例中的錯字,還是不小心從示例中未顯示的更高范圍調用回調,但這可能會產生奇怪的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.