0

我有一个使用 EdgeJs 执行 JavaScript 的 .Net 应用程序。js 脚本执行一些逻辑并获取一些数据,然后它应该将数据返回给 .Net 应用程序。可能有很多数据,所以我想将它分块传回.Net应用程序。

我的 .Net 应用程序:

private async Task<Object> CallNodeFunction(Object input)
    {
        ExceptionDispatchInfo capturedException = null;
        try
        {
            var func = Edge.Func(JSFunction);

            var data= await func(input);

            return data;
        }
        catch (Exception ex)
        {
             // sophisticated error handling
        }

        return null;
    }

基本上我想做这样的事情(简单的例子):

function start(params, callback) {

    getTheData(params).then(function (response) { callback(null, response); }); // Chunk 1

    getTheData(params).then(function (response) { callback(null, response); }); // Chunk 2

    getTheData(params).then(function (response) { callback(null, response); }); // Chunk 3

}

如您所见,我正在执行回调 3 次,但我找不到让 Edge.Js 处理所有 3 个响应的方法。

有任何想法吗 ?

谢谢。

4

1 回答 1

0

.net 是同步的,所以它只会调用你的节点函数一次,然后它会移动到下一行,你的节点函数不会再次被调用。

但是,正如您所提到的,您希望以块的形式接收数据,因此您必须在您的 .net 代码中应用此分块逻辑并将偏移量作为参数传递给节点函数,以便节点基于获取下一个块在偏移量上并再次传递数据。

于 2015-11-23T09:49:08.200 回答