gpt4 book ai didi

javascript - 在 JavaScript 中完成的函数

转载 作者:行者123 更新时间:2023-12-03 11:30:07 24 4
gpt4 key购买 nike

实际上我正在阅读 Nodejs 中的一些代码,但我无法理解它的含义,因为我不太理解 function 的一些常见用法。有人能告诉我function(done)是什么意思吗?这是回调还是什么?在js文件中我看不到done的定义。谢谢

安第斯山脉

var getRedisUri = exports.getRedisUri = function (done) {
if (process.env.CLUSTER_CONFIG_URI) {
return done(null, process.env.CLUSTER_CONFIG_URI);
}
//redis uri
Fs.readFile(
'/opt/redis_uri',
{encoding: 'utf8'},
function (err, redis_uri_data) {
if (err) {return done(err);}

var redis_uri = redis_uri_data.toString();


if (process.env.NODE_ENV !== 'production' &&
process.env.VM_DOMAIN &&
(redis_uri.indexOf('localhost') !== -1 || redis_uri.indexOf('127.0.0.1') !== -1)) {
redis_uri = redis_uri.replace('localhost', process.env.VM_DOMAIN);
redis_uri = redis_uri.replace('127.0.0.1', process.env.VM_DOMAIN);
}

done(null, redis_uri);
});
};

最佳答案

该行只是函数定义的开始。 function(done) 只是意味着当调用此函数时,应该使用一个参数来调用它,并且在函数执行期间,该参数将被称为 done.

更具体地说,我认为这与中间件有关(您在这里使用express.js吗?)。如果您在express中有一堆中间件函数,则express路由器将为您调用这些函数,并传入一个函数作为参数,该函数在调用时将请求传递给下一个中间件函数。看起来这就是这里发生的事情,因为 done 在函数末尾被调用。

Node.js 有这样的东西,因为它都是异步的,所以你不能过多使用 return 语句。

关于javascript - 在 JavaScript 中完成的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26771325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com