[英]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.