我不是Maven,但我能搞定:调用函数checkTLS
// params={ibmdev_tls: 'not imp',ibmqa_tls: 'not imp',ibmqa_ssl: 'not imp'}
Object.keys(params).forEach( key => {
console.log(key);
if(key.includes("tls")){
//splitting parms to get cluster id
clusterId=key.substring(0, key.indexOf("_"));
console.log("cluster ID=="+clusterId);
tlsresualt= checkTLS(clusterId);
console.log("tls resualt is="+ tlsresualt);
req.body[`${clusterId}_tls`]=tlsresualt;
console.log(req.body.ibmdev_tls);
console.log("==================================");
}
});
checktlsStatus是我需要传递的内容:
function checkTLS(clusterID){
fs.readFile("clusterinfo/clusterinfo.json",(err, clusters) => {
TlsVerion="TLS12";
if(TlsVerion.includes("TLS12")){
console.log(`TLs check status ------------------------ for ${clusterID}`);
console.log(` TLs match the Secuity Baseline requirment for ${clusterID}`);
checktlsStatus="implemented";
//req.body.ibmdevtls=tlsStatus;
//return console.log(checktlsStatur+ "check for tls successed");
// req.body.(`${clusterID}`+`tls`)=tlsStatus;
return checktlsStatus;
}
)};
}
我试过wait和asycn,也试过execSync(sleep 20
);
2条答案
按热度按时间ubof19bj1#
我已经修改了你的代码与相同的功能使用异步和等待。内容变量有读文件的内容。
参照Here,详细说明可参照
qyyhg6bp2#
回拨不是这样的!
想想看:
因为foo没有返回值,所以
abc
总是未定义的!foo
忽略了回调返回。这就是你认为
fs.readFile
是如何工作的。但它不是那样工作的!有一些方法可以解决它:
1.向
checkTLS
函数添加回调。1.使用
fs.readFileSync
。1.(建议)使用
Promise
(异步/等待)API。我们开始吧:
我不确定你想做什么,所以只要把
checkTLS
重新编译成一个异步函数。