我的代码是这样的,
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
})
});
}
这取决于您的模式、模块或脚本的复杂性。
关于javascript - 访问外部回调函数参数的简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334158/