簡體   English   中英

匿名 function scope 混淆

[英]Anonymous function scope confusion

如何將匿名 function 內的值分配給全局變量或 scope 之外的變量。 例如,下面的例子。 console.log(rows)返回正確的數據,而console.log(result)返回 undefined

var result;
this.query(sql).execute(function(error, rows) {
    console.log( rows )
    result = rows;
});
console.log( result );

Node.js 是事件驅動的,這意味着大部分功能都是異步的。 execute function 不返回任何值,因為“返回”值在作為您的第一個參數聲明的匿名 function 中,其中 function 僅在查詢已被執行且已被數據庫調用時才返回值。 所以你的result變量不包含任何值,因為還沒有任何東西可以返回。

**編輯**

即使在您編輯之后,記錄變量result的行也會在您為其分配rows之前執行,因為匿名 function 僅在查詢完成后才執行。

.execute返回什么? 它可能只是處理.query返回的項目而不返回數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM