[英]node function calling another function and returns undefined
我在nodejs中有以下代码:
const unifi = require('node-unifi');
const controller = new unifi.Controller(IP_ADDRESS, 8443);
function login(apiCall) {
controller.login(USERNAME, PASSWORD, function (err) {
if (err) {
console.log('ERROR: ' + err);
return;
}
apiCall();
});
}
function getAllClients(site) {
login(function () {
controller.getClientDevices(site, (res, data) => {
console.log(data);
});
});
}
getAllClients('siteid');
在原始调用中,任何 function 都需要在 login() 中调用,因此只能在登录时调用。当我调用 function getAllCients(siteID) 时,我会在 console.log 中得到所需的结果。 但是为了上帝的爱,我无法在另一个文件中获得从 function 返回的结果,我需要上述 function。 总是不确定。
我假设我需要使用回调,但是在阅读了多个论坛(即节点艺术)之后,我没有更明智地使用回调。
任何帮助,将不胜感激。
感谢@VLAZ ,他为我指明了正确的方向:-)
我编辑后的代码:
function getAllClients(site) {
return new Promise(function (resolve, reject) {
login(function () {
controller.getClientDevices(site, (err, data) => {
if (!err) {
resolve(data);
}
});
});
});
}
我所做的只是返回 promise 然后我在另一个文件中使用.then()
谢谢!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.