如何进行异步调用?我尝试使用此代码:

abc = await ad.authenticate(username, password, function(err, auth) {
          if(err){
            console.log('ERROR: '+JSON.stringify(err));
            fail_found = err.name;
            return;
          }

          if(auth){
            console.log('Authenticated!');
          }else{
            console.log('Authenticated Faliled');
            fail_found = 'No Authenticated ';
          }
        });
      }
      console.log("Fails?: ",fail_found);


NPM:https://www.npmjs.com/package/activedirectory2
GitHub:https://github.com/jsumners/node-activedirectory/

谢谢 !

最佳答案

您可以尝试使用Promise

let myPromise = new Promise((resolve, reject) => {
     ad.authenticate(username, password, function(err, auth) {
      if(err){
        console.log('ERROR: '+JSON.stringify(err));
        fail_found = err.name;
        reject(fail_found)
        return;
      }

      if(auth){
        console.log('Authenticated!');
        resolve('Authenticated!');
      }else{
        console.log('Authenticated Faliled');
        fail_found = 'No Authenticated ';
        reject(fail_found)
      }
    });
  }
  console.log("Fails?: ",fail_found);
  reject(fail_found)
});

myPromise.then((successMessage) => {
 console.log(successMessage);
}).catch(err => console.log(err))


或者在文档的第一部分中显示一个promiseWrapper:

const AD = require('activedirectory2').promiseWrapper;
const config = { url: 'ldap://dc.domain.com',
           baseDN: 'dc=domain,dc=com',
           username: '[email protected]',
           password: 'password' }
const ad = new AD(config);

07-28 05:29