если я вызову функцию doHttp, она получит данные в журнале без проблем.Кажется, я просто не могу получить данные, чтобы вернуться и мне позволили говорить.Я использую визуальный код студии с помощью nodejs.Я довольно новичок в этом, поэтому я знаю, что что-то упустил.
const url = "https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY";
const linkIntentHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'IntentRequest'
&& handlerInput.requestEnvelope.request.intent.name === 'linkIntent';
},
handle(handlerInput) {
var data = doHttp();
var speechText = data;
return handlerInput.responseBuilder
.speak(speechText)
.withSimpleCard('Card title', speechText)
.getResponse();
},
};
function doHttp() {
var data2 = '';
https.get(url, (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end', () => {
data2 = JSON.parse(data).title;
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});
return data2;
}
//Working function
function doHttp() {
https.get(url, (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end', () => {
console.log(JSON.parse(data).title);
});
}).on("error", (err) => {
console.log("Error: " + err.message);
});
}