繁体   English   中英

节点 function 调用另一个 function 并返回 undefined

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM