[英]what is the db argument's value or usage for this javascript es6 fat arrow function?
initializeDb( db => {
// internal middleware
app.use(middleware({ config, db }));
// api router
app.use('/api', api({ config, db }));
app.server.listen(process.env.PORT || config.port, () => {
console.log(`Started on port ${app.server.address().port}`);
});
});
https://github.com/developit/express-es6-rest-api/blob/master/src/index.js#L27
在上述情況下,數據庫似乎突然冒出來,要查看上下文,請單擊直接指向源代碼的鏈接。
我在此處( https://codepen.io/adamchenwei/pen/vWWmXa )以相同的方式進行了模擬,甚至無法訪問該db
。 在那個特定的樣板里, db
究竟做了什么?
db
是initializeDb
回調函數的initializeDb
該代碼實際上看起來像這樣
'use strict';
initializeDb(function (db) {
// internal middleware
app.use(middleware({ config: config, db: db }));
// api router
app.use('/api', api({ config: config, db: db }));
app.server.listen(process.env.PORT || config.port, function () {
console.log('Started on port ' + app.server.address().port);
});
});
以上情況,數據庫似乎突然出現
這是您傳遞給initializeDb
的函數的參數。 initializeDb
presumable創建一個新的數據庫實例,並將該實例傳遞給您傳遞給它的函數。
這就是函數的工作方式,它們接受在調用時提供的參數。 僅在您的示例中,不是您調用函數,而是另一個函數( initializeDb
)。
接受回調的函數的簡化示例:
function answerToEverything(callback) { callback(42); } answerToEverything(answer => console.log(answer));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.