How to return data in SOAP from Promise

I created a SOAP server in Node.js

const soap = require('soap');
const http = require('http');

const service = {
   ImpDispatcherService: {
      ImpDispatcher: {
         performTest: function (args) {
            queryDatabase(args.parameter1).then(result => {
               return result;
            });
         }
      }
   }
};

var server = http.createServer((request, response) => {
   response.end('404: Not Found: ' + request.url);
});

// Create the SOAP server
const xml = require('fs').readFileSync(`${__dirname}/ImpDispatcherService.wsdl`, 'utf8');
var server = http.createServer((request, response) => {
   response.end('404: Not Found: ' + request.url);
});

server.listen(8000, 'localhost');
soap.listen(server, '/imp', service, xml, () => {
   logger.info('Server initialized');
});

async function queryDatabase(pars) {
   return "foo";
}

In reality function queryDatabase() returns a Promise, i.e. a ResultSet but the error remains the same with simple 'foo'

When I make a SOAP request from client, then it hangs and after timeout I get error <missing raw response data>

What shall I do to respond the value of result?