Edge.Js:如何在nodejs中执行多个回调

时间:2015-11-23 08:21:42

标签: node.js edge.js

我有一个使用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个响应的方法。

任何想法?

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

相关问题