Return 来自异步的对象 activity 函数持久扩展 Azure Function Nodejs

Return object from async activity function Durable extension Azure Function Nodejs

在一个 activity 函数中,我们 return 通过

做一些事情
context.done(null, object);

持久函数 其中 object 是我要发送的目标对象。

但是当我使 activity 函数异步时,i can not use context.done

没有 context.done 我如何从 activity 函数发送我想要的对象?

就return吧。也就是说,您应该在 context.done(null, object) 的地方使用 return object 来代替。对于多个输出绑定,照常使用对象属性。但是,如果您只有一个输出绑定,则可以通过将 function.json 中的绑定名称设置为 $return,将其直接绑定到您的 return 值,例如

{
    "bindings": [
        {
            'type': ...,
            'direction': 'out',
            'name': '$return'
        },
        ...
    ],
    ...
}

如果我们只需要return调用这个activity的orchestrator函数,一个简单的return object;就足够了。一旦我们想要将结果输出到其他服务(如 blob 存储、http 响应等),绑定就很有用。

然后在 orchestrator 中,照常获取对象。

var myObject = yield context.df.callActivity(...);