访问它外部的回调函数参数的简单方法是什么

What is the easy way to access the callback function arguments outside of it?

本文关键字:简单 方法 是什么 参数 回调 外部 访问 函数      更新时间:2023-09-26

我的代码是这样的,

var jenkins = require('jenkins')('http://192.168.1.5:8080');
var job_name = undefined;
jenkins.job.list(function doneGetting(err, list) {
    if (err) throw err;
    job_name = list[0].name;
});
jenkins.job.get(job_name, function(err, info){
    if (err) throw err;
    res.render('index', {
         title: 'Jenkins API',
         job_name: job_name,
         job_info: info
    })
});

我的问题是我无法获得job_name的值,因为它在回调中。我正在努力为此找到解决方案。尽管已经存在许多关于回调的问题,但无法找到解决方案。对不起。

提前谢谢。

您只需将

jenkins.job.get移动到回调jenkins.job.list

jenkins.job.list(function doneGetting(err, list) {
    if (err) throw err;
    job_name = list[0].name;
    jenkins.job.get(job_name, function(err, info){
        if (err) throw err;
        res.render('index', {
             title: 'Jenkins API',
             job_name: job_name,
             job_info: info
        })
    });
});

还有其他解决方案,比如使用函数

jenkins.job.list(function doneGetting(err, list) {
    if (err) throw err;
    job_name = list[0].name;
    getJob(job_name);
});
function getJob(job_name) {
    jenkins.job.get(job_name, function(err, info){
        if (err) throw err;
        res.render('index', {
             title: 'Jenkins API',
             job_name: job_name,
             job_info: info
        })
    });
}

这取决于您的模式、模块或脚本的复杂性。