簡體   English   中英

此javascript es6胖箭頭函數的db參數的值或用法是什么?

[英]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究竟做了什么?

dbinitializeDb回調函數的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.

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