我有一个使用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个响应的方法。
任何想法?
感谢。
答案 0 :(得分:0)
.net是同步的,所以它只会调用你的节点函数一次,然后它将继续到下一行,你的节点函数将不再被调用。
但是,正如您所提到的,您希望以块的形式接收数据,因此您必须在.net代码中应用此分块逻辑并将偏移量作为参数传递给节点函数,以便节点获取基于偏移的下一个块并再次传递数据。