express js中的async.waterfall方法
async.waterfall method in express js
问题:
我使用express.js从数据库中获取数据并以json格式显示。
但是当在node js中运行代码时,会显示一个空数组(ganttrault),当我再次刷新浏览器时,我会得到所需的结果。
所以,我使用了async.waterfall
方法来顺序执行我的代码,但同样的问题仍然存在。
请告知
var ganttresult= new Array();
app.get('/get',cors(), function(request,response) {
async.waterfall([
function(result) {
connection.query("SELECT id FROM Gantt",function(err, rows) {
if (err) {
console.log('error in fetching ' + err);
}
else{
var all_id=rows;
for(var j=0;j<all_id.length;j++){
connection.query("SELECT id,tailName FROM Gantt where id= '"+all_id[j].id+"'",function(err, rows) {
if (err) {
console.log('error in fetching ' + err);
}
else{
var jsonString1=rows;
var set_id=jsonString1[0].id;
connection.query("SELECT itemId,name,start,end FROM GanttFlight where id= '"+set_id+"'",function(err, rows) {
if (err) {
console.log('error in fetching ' + err);
}
else{
var jsonString2=rows;
var gantt1=new Object();
gantt1.id=jsonString1[0].id;
gantt1.name=jsonString1[0].tailName;
var series = new Array();
if(jsonString2.length>0){
for(var i=0;i<jsonString2.length;i++){
var gantt2=new Object();
gantt2.item=jsonString2[i];
series.push(gantt2);
gantt1.series=series;
}
}
else{
gantt1.series=[];
}
ganttresult.push(gantt1);
}
});
}
});
}
var result= JSON.stringify(ganttresult);
ganttresult=[];
response.send('{'"data'":'+result+'}');
response.end();
}
});
}
], function(err) {
if(err){
console.log(err);
}
}
);
});
我正在重新编写您的代码,以便在async.map中正确使用async.waterfall但我在上面花了太多时间。
以下是我的做法https://gist.github.com/bulkan/7800715
请注意,它并不完整。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- express js中的async.waterfall方法
- 如何将嵌套_.each转换为同步方法?首选使用 Promise 或 Async.waterfall
- 方法在 async.waterfall 中不起作用
- 在异步.waterfall方法中构造mongose回调