簡體   English   中英

當我使用“await”為 function 創建一個變量時,這個 function 會立即運行還是僅在我調用此變量時運行?

[英]When I create a variable to a function using “await”, this function runs immediately or just when I call this variable?

當我這樣做時:

conn = await pool.getConnection()

getConnection() 運行?

還是僅在我調用 conn 變量時運行? 像這樣:

conn.execute(`SELECT * FROM ${table}`);

當你這樣做時:

conn = await pool.getConnection()

pool.connection()立即運行。 ()告訴 Javascript 現在執行該方法。 在這種情況下, pool.getConnection()開始獲取數據庫連接的過程,然后立即返回 promise(假設您使用的數據庫庫版本支持承諾)。

The await operates on that promise and suspends furather execution of this asycn function until that promise resolves and the containing async function itself returns a promise. 當數據庫連接 promise 解析時,變量conn被分配該 promise 的解析值(應該是實時數據庫連接對象),然后繼續執行 function。

pool.getConnection將是 function 參考。 pool.getConnection()執行 function ,它的值將是執行.getConnection()方法的返回值。

當我使用“await”創建對 function 的引用時

你的這個說法有點混亂。 使用await不會“創建對函數的引用”。 如果您確實await somePromise ,那只會暫停 function 主體的進一步執行,直到 promise 解決或拒絕。 在您的情況下pool.getConnection()被執行,它的返回值是await得到的。

暫無
暫無

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

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