如何从异步函数中返回多次调用的异步函数返回的数据对象。
我试图像这样实施:
class Child < Entity
@instance_counter = 0
end
我怎样才能正确完成,搜索和搜索但无法找到解决方案。
聚苯乙烯。我正在使用Figlet.js
答案 0 :(得分:0)
我不知道您是否可以使用外部模块,但可以使用tiptoe。
像任何常规模块一样使用npm install tiptoe
安装它,它基本上是这样的:
var tiptoe = require('tiptoe')
function someAsyncFunction(obj, callback) {
// something something
callback(null, processedData);
}
tiptoe(
function() {
var self = this;
var arr = ['there', 'are', 'some', 'items', 'here'];
arr.forEach(function(item) {
someAsyncFunction(item, self.parallel());
});
},
function() {
var data = Array.prototype.slice.call(arguments);
doSomethingWithData(data, this);
},
function(err) {
if (err) throw (err);
console.log('all done.');
}
);
someAsyncFunction()
是您要调用的异步函数,并将callback
参数作为函数调用error
和data
。 data
参数将作为数组项传递给tiptoe
流上的以下函数。
答案 1 :(得分:0)
自己做了:) Thanks to mostafa-samir's post
var figlet = require('figlet');
function WaterfallOver(list, iterator, callback) {
var nextItemIndex = 1;
function report() {
nextItemIndex++;
if(nextItemIndex === list.length)
callback();
else
iterator([list[0],list[nextItemIndex]], report);
}
iterator([list[0],list[1]], report);
}
var FinalResult = [];
WaterfallOver(["hello","Standard","Ghost"], function(path, report) {
figlet.text(path[0], { font: path[1] }, function(err, data) {
if (err) {
FinalResult.push("Font name error try help");
report();
return;
}
data = '<pre>.\n' + data + '</pre>';
FinalResult.push(data);
report();
});
}, function() {
console.log(FinalResult[0]);
console.log(FinalResult[1]);
});