Я получаю аудио URL и некоторый текст от this api.До сих пор я могу получить этот ответ в диалоговом потоке с помощью webhook.
Теперь мне нужно получить одни и те же данные несколько раз.Например, до сих пор, если я попрошу воспроизвести аудио , оно выдаст URL 1 раз .Теперь я хочу, чтобы он возвращал URL несколько раз , например, когда я прошу его воспроизвести аудио 2 раза или 100 раз, он должен дать URL соответственно.
URL-адреса должны храниться в массиве так же, как я это делаю.
Я помещаю объект, содержащий «url», «title» и «type», в массив с именем «messages».Надо толкать конкретно нет.раз я указываю, используя переменную 'times'.
Это то, что я уже пробовал.Пожалуйста, проверьте цикл, если он расположен правильно?Эта функция работает без цикла и возвращает данные один раз.Сообщите мне, если требуется какая-либо другая деталь.
Код
static readAyahOfSurahMultipleTimes = async (agent: any) => {
const params = agent.parameters
console.log("params: ", params)
let surahApi: any = await http.get(`http://api.alquran.cloud/v1/ayah/${params.surahName}:${params.ayahNumber}/editions/ar.alafasy,en.asad`);
var ayahs: any = surahApi["data"];
console.log("ayahs", ayahs);
let payload = {
"web": {
"messages": []
}
}
try {
ayahs.forEach(function (item) {
for(var i=0;i<params.times;i++){
payload.web.messages.push({
"url": item.audio,
// "title": item.text,
"title": surahApi["data"][0]["text"],
"type": "audio",
})
}
});
console.log("payload", payload);
console.log("payload.web.messages",payload.web.messages);
raw.response.send({
"fulfillmentText": `Ayah number ${params.ayahNumber} of surah number ${params.surahName} is being played`,
"payload": payload
})
return;
} catch (e) {
console.log("error in catch block", e);
raw.response.send({
"fulfillmentText": `response from catch`
})
}
}
ОТВЕТ НА ВЫПОЛНЕНИЕ