我正在使用Azure函数(用JavaScript编写)将各种条目写入Cosmos DB并使用“发送网格”发送电子邮件。我的问题是,我想在foreach循环中调用“ context.bindings.outputCosmosDB”和“ context.bindings.message”,以便在cosmos数据库中创建新的数据库条目并使用sendgrid发送电子邮件。但是,当我尝试执行此操作时,仅执行第一个context.bindings调用。
例如,如果我的foreach循环运行5次以处理5个不同的项目,并且每个处理的项目都调用context.bindings以写入数据库并发送电子邮件,则仅为第一个处理的项目和数据库生成电子邮件条目仅为第一个处理的项目创建。
经过很多头痛之后,我现在知道发生了这种情况,因为context.bindings调用是异步进行的。但是,我不确定如何解决此问题。
如何多次调用context.bindings.message(或context.bindings.outputCosmosDB),并让每个调用生成电子邮件(或数据库条目)?
答案 0 :(得分:0)
对于数据库,Azure绑定似乎每个函数调用仅被调用一次。您可以尝试创建一个由行写对象组成的数组,然后在迭代循环结束后调用bind方法(一个bind方法调用),而不是每次迭代一次调用bind方法(多次调用)。
我还没有尝试使用SendGrid绑定。