Как получить тело ответа https - PullRequest
0 голосов
/ 29 мая 2019

Я занимаюсь программированием на Office.js. Я пытаюсь прочитать данные, которые я получаю с сервера. Https.get верни Дада наверняка! (Я печатаю его за одну секунду до отправки обратно с сервера, а также получаю код 200). Проблема в том, что я не могу взять данные, полученные с сервера, и распечатать их или выполнить некоторые вычисления.

Я везде искал ответ, но по какой-то причине он просто не работает.

var request = https.get("https://localhost:8888/getLastDetailedOrders", function(response){

                            //console.log(response.statusCode); //Testing the response.
                            //read the data
                            response.on('data', function (chunk){
                                body += chunk;
                              });
                            //ending the event.
                            response.on('end', function() {
                                range2.values = [[body]];
                                console.log(body); // prints nothing! 
                                console.log('No more data in response.');
                            })
                        });

Пожалуйста, помогите мне прочитать данные и обработать их

1 Ответ

0 голосов
/ 27 июня 2019

Я понял, что было состояние гонки. Асинхронная функция officejs, в которой я написал запрос https, просто закончила свою работу, прежде чем сервер успел отправить информацию назад и клиенту ее перехватить. Несмотря на обратный вызов, так как офису нужен контекстный параметр, и он больше не был здесь, потому что функция была завершена, клиент не мог ничего сделать с информацией, возвращаемой сервером. Таким образом, решение состояло в том, чтобы сделать новую асинхронную функцию, в которую я бы поместил запрос https, эта функция возвращает обещание. Затем из основной функции вызовите новую функцию, добавив сначала await перед вызовом. Затем .then () после вызова выполняет все остальные задачи основной функции. Таким образом вы заставляете основную функцию ждать, пока мы не получим полный ответ от сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...