用async.series的回调函数填充数组
fill a array with a callback from async.series
我的回调函数在'async。Series '返回多个值,并从'elements'创建多个输出。
我如何通过使用'forEach'将返回值写入数组?
async.series(
{
// Browse
elements: function(callback) {
Server_browse(item, function(result) {
callback(null,result);
});
},
},
function(err,result) {
if (err) {
console.log(" error : ", err);
console.log(err.stack);
}
console.log('elements=' + JSON.stringify(result.elements));
}
);
如果你只发出一个请求,那么caolan/async是没有用的。
Server_browse(item, ...
中的item
变量从何而来
我可能是错的,因为有缺失的信息,但我认为你想要实现这一点:
var items = ['query1', 'query2', 'query3'];
async.mapSeries(
items,
// for each item
function(item, callback) {
Server_browse(item, function(result) {
callback(null, result.elements);
});
},
// when all queries are done
function(error, resultElements) {
console.log(resultElements)
}
);
下面是另一个函数'browse'和Server_browse。
函数'Server_browse'将一个文件夹或变量委托给函数'browse'。在'browse'中,我将在数组中添加变量或再次调用'Server_browse',如果项目是文件夹。目前我得到所有的文件夹和变量在'console.log(result.elements)'上分开。但是我将把所有的文件夹和变量写在一个数组中。
var browse = function(item,indx,array,callback){
// 'item' is a Folder or Variable which i get from the server
//item = {"MyVariable1":{"referenceTypeId":"ns=0;i=46","isForward":true,"nodeId":"ns=1;i=1005","browseName":{"namespaceIndex":0,"name":"MyVariable1"},"displayName":{"text":"MyVariable1"},"nodeClass":"Variable","typeDefinition":"ns=0;i=63"}};
var child = ns='+item.browseName.namespaceIndex+';i='+item.nodeId.value;
if (item.$nodeClass.key == 'Variable') {
callback(item);
}else{
Server_browse(child,function(result){
callback(result);
});
}
}
var Server_browse = function(item,callback){
node_browse.session.browse( item,function (err, itemResults,diagnostics) {
if (err) {
console.log(err);
console.log(itemResults);
console.log(diagnostics);
}else{
for(var i=0; i<itemResults.length; i++){
itemResults[i].references.forEach(function(element,index,arr){
browse(element, index, arr, function(item){
callback(item);
});
});
}
}
});
}
相关文章:
- 在页面中找不到元素的正确位置.函数未考虑填充
- 从sql填充Jqgrid的自定义Add函数中的下拉数据
- Javascript使用本地存储,回调对象并用Json更改为一个字符串以用于填充函数
- 谷歌地图API没有;t显示地图,如果中心由javascript函数填充
- 当浏览器自动填充表单字段时,$parsers$formatters函数不会启动
- 将函数应用于填充有数字的对象
- 在承诺函数从 pouchdb 填充数据之前触发 Ionic/Angular $watch的问题
- 通过 JavaScript 函数填充 HTML 下拉菜单
- 通过函数填充 Grunt 任务配置的“文件”属性
- jquery函数填充的文本框需要小数
- 用async geocode函数填充javascript数组
- 如何使用json函数填充数据库组合框
- 用之前调用的函数填充异步数组
- 从javascript函数填充DTO类
- 如何用一个javascript函数填充多个选择元素?
- 为什么我的隐藏字段不从JavaScript函数填充
- 克隆img SRC以从click函数填充特定的其他img源
- PHP Javascript AJAX填充和计算几个输入字段-只有一个函数填充
- 使用jQuery JSON函数填充文本区域时,一个特定的下拉菜单项被选中
- 在页面加载时使用javascript函数填充HTML列表框