是否可以选择向最终用户发送多条消息?我正在尝试发送多个图像以及正文,但是对此没有文档。
context.getTwilioClient().messages.create({
to: event.From,
from: 'whatsapp:' + context.WHATSAPP_NUMBER,
body: str[i]
mediaUrl: image[i]
}
循环这部分效果不错,但是它有很多错误,无法按顺序显示我的数组。
答案 0 :(得分:0)
Heyoooo,这里是Twilio开发人员。 ?
发送带有多个消息的多个图像应该可以正常工作。我认为您遇到了一个常见的JavaScript问题,该问题可以解释令人困惑的顺序。
当你做这样的事情
[...].forEach((element, i) => {
context.getTwilioClient().messages.create({
to: event.From,
from: 'whatsapp:' + context.WHATSAPP_NUMBER,
body: str[i]
mediaUrl: image[i]
}
});
messages.create
将被顺序调用,但只有很小的延迟。对API的第二次调用最有可能在第一次调用完成之前发生。以下要求也相同。
此行为甚至可能导致第二个请求比第一个请求更早命中API的状态,因为HTTP层上的某些内容花费了更长的时间(发生了……)。
您是否仅在上一个请求真正完成后才尝试像下一个呼叫那样“按顺序”运行它们?
messages.create
返回一个Promise,这意味着只有当前一个完成时,您才能将Promise链接在一起进行create
调用。
很难给你一个更好的代码示例,因为我不知道你的循环是什么样子,但是可以用例如reduce
可让您真正按顺序运行create
。
[...].reduce(async (previousPromise, value, i) => {
await previousPromise;
return context.getTwilioClient().messages.create({
to: event.From,
from: 'whatsapp:' + context.WHATSAPP_NUMBER,
body: str[i]
mediaUrl: image[i]
}
}, Promise.resolve());
如果您想了解其工作原理(?)here we go。 :)
希望有帮助,让我知道进展如何。