Асинхронные проблемы с Node.js Запросы на МЫЛО

#node.js #xml #api #soap

Вопрос:

Я пытаюсь сделать запрос в Quest API для создания заказа на тестирование сотрудников на наркотики. Мой запрос приведен ниже

 const questOption = { username, password, orderXml };  soap.createClientAsync(baseUrl).then( (client) =gt; {  let createOrderResult = client.CreateOrder(questOption)  console.log("createOrderResult:", createOrderResult)  return createOrderResult;  })  .then( (result) =gt; {  console.log("result:", result)  const parsedResult = orderService.parseResponse(createOrderResult, "create");  }) 

Консоль.журнал createOrderResult и результат возвращаются неопределенными, что создает впечатление, что консоль.журналы запускаются до завершения запроса API. Параметры указаны правильно, а формат xml в точности соответствует требованиям документов Quest API. Ниже приведен скриншот того, что требуется API quest в запросе API, а также пример ответа API при возникновении ошибки

введите описание изображения здесь введите описание изображения здесь

Кроме того, я должен упомянуть, что, когда я console.log(клиент), я получаю массивный объект. Рад предоставить любую другую информацию! Ценю любую помощь в этом

Комментарии:

1. Что client.CreateOrder(questOption) возвращается?

2. также не определено. Я только что обновил пост, чтобы отразить и это тоже!

3. Я думаю, что есть ваш ответ. Асинхронный код не запускается до createClientAsync завершения. Это просто client.CreateOrder() возвращает undefined. Are you certain you are passing the parameters correctly? The signature says CreateOrder(строковое имя пользователя, строковый пароль, строковый orderXml), который выглядит как три разных параметра. Но вы передаете один объект со всеми тремя из них. Я не знаю, точно это или нет.

4. Я пытался связаться с клиентом. Создайте заказ(имя пользователя, пароль, orderXml) и я получаю те же результаты. Может быть, проблема с XML, как вы сказали? Хотя я бы подумал, что API вернет ошибку и не оставит результат неопределенным

5. Определенно кажется, что клиент SOAP работает не так, как ожидалось. Но я не знаю, почему. В документации четко указано, что он должен возвращать строку, но вы получаете undefined , и это даже не ошибка. Возможно, проблема связана с используемым вами API.