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

标签 javascript node.js express npm

我的代码是这样的,

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/

相关文章:

node.js - Mongodb 排序返回未定义

asp.net - 为什么嵌入的页面找不到我的 javascript 函数?

node.js - Express js 多种操作gm(GraphicsMagick)模块

node.js - 将套接字连接到测试中的 sails

javascript - 环回。如何获得一个用户的所有角色?

node.js - Mongoose populate() 返回填充文档的 '_id' 字段,值为 "new ObjectId()"

javascript - 将 div 的最小高度设置为另一个 div 的高度

javascript - 在 JS 参数中添加引号

javascript - 如何在 Angular 4 中创建组件定义类的实例?

node.js - 创建付款时结帐时出现此错误 "Bad request - parameter error"