我可以从Azurefunction的单个运行中排列多个项目吗?

我有一个Node.js timerTrigger Azure函数处理一个集合,并将处理结果排队以供进一步处理(通过Node.js queueTrigger函数)。

代码如下所示:

 module.exports = function (context, myTimer) { collection.forEach(function (item) { var items = []; // do some work and fill 'items' var toBeQueued = { items: items }; context.bindings.myQueue = toBeQueued; }); context.done(); }; 

这段代码将只排队最后一个toBeQueued而不是每个我想排队。

有没有办法排队多个项目?

更新

为了清楚toBeQueued ,我正在讨论forEach每次迭代中排队一个toBeQueued ,而不是排队一个数组。 是的,Azure函数有一个问题,因为我不能排队数组,但我有一个解决方法, 即, { items: items }

还没有,但我们将在一周内解决,敬请关注:)您可以将数组传递给绑定,如上面所做的那样。

我们在这里的公开回购中有一个跟踪这个问题的问题。 感谢您的报告。

Mathewc的答案是正确的一个节点。

对于C#,您可以通过指定ICollector<T>作为输出队列参数的types。

下面是一个例子,我有两个输出队列,其中一个我通过for循环添加。

 public static void Run(Item inbound, DateTimeOffset InsertionTime, ICollector<Item> outbound, ICollector<LogItem> telemetry, TraceWriter log) { log.Verbose($"C# Queue trigger function processed: {inbound}"); telemetry.Add(new LogItem(inbound, InsertionTime)); if(inbound.current_generation < inbound.max_generation) { for(int i = 0; i < inbound.multiplier; i++) { outbound.Add(Item.nextGen(inbound)); } } }