Я пытаюсь l oop через массив для отправки нескольких сообщений в Twilio последовательно . Но в моем конечном выводе в Whatsapp порядок не является последовательным. Например, он отображается в следующем порядке: Изображение 2 -> Изображение 1 -> Изображение 3. Я пытался использовать библиотеку asyn c / await , но это не помогло.
Я пытался .reduce , а также обычный для l oop с await внутри l oop .
Массив:
str.text = ["Image 1", "Image 2", "Image 3"]
str.images = ["https://hatrabbits.com/wp-content/uploads/2017/01/random.jpg", "https://images.unsplash.com/photo-1494253109108-2e30c049369b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&w=1000&q=80", "https://www.computerhope.com/jargon/r/random-dice.jpg", ]
Код:
function sendMsg(img, txt) {
context.getTwilioClient().messages.create({
to: event.From,
from: 'whatsapp:' + context.WHATSAPP_NUMBER,
body: txt,
mediaUrl: img
}).then(message => {
callback();
}).catch(err => callback(err));
}
async function test(str) {
(str.text).reduce(async (previousPromise, value, i) => {
await previousPromise;
return sendMsg(str.images[i], str.text[i])
}, Promise.resolve());
}
request.post({
...
}, function (err, res, body) {
var str = body.data.message;
test(str);
}