大部分情况下我可能会犯一些错误,而且它太小以至于我无法识别它。与Async nodejs相关的问题 - 给出不准确的回应
代码片段 -
async.parallel
([
function(callback)
{
pictureset.findOne({ 'jebno': newz }, function (err, docsss)
{
if (err) return callback(err);
pictures = docsss;
console.log(docsss);
callback();
});
},
function(callback)
{
merchantmodel.findOne({ 'jebno': newz1 }, function (err, docss)
{
if (err) return callback(err);
merchantobject = docss;
console.log(docss);
callback();
});
},
function(err)
{
console.log(pictures);
console.log(merchantobject);
console.log("We are here");
res.json({ picturemodel: pictures, merchantobject: merchantobject, status: 100, message: 'Successfully Done1'});
if (err) return next(err);
}
]);
现在我期待这样的反应。
Value from console.log(docsss);
Value from console.log(docss);
Value from console.log(pictures);
Value from console.log(merchantobject);
we are here
但我我的控制台上得到响应是
- 未定义
- 未定义
- 我们在这里
- 我以前见过一些阵列相关的消息,但没”在这些情况下真的会改变结果。我对它做了一些研究,但没有明白它的确切含义。从执行console.log
- 值(docsss)&的console.log(docss)
这里是控制台的实际片断
undefined
undefined
We are here
function() {
var length = Math.max(arguments.length - startIndex, 0);
var rest = Array(length);
for (var index = 0; index < length; index++) {
rest[index] = arguments[index + startIndex];
}
switch (startIndex) {
case 0: return func.call(this, rest);
case 1: return func.call(this, arguments[0], rest);
}
// Currently unused but handle cases outside of the switch statement:
// var args = Array(startIndex + 1);
// for (index = 0; index < startIndex; index++) {
// args[index] = arguments[index];
// }
// args[startIndex] = rest;
// return func.apply(this, args);
}
{ _id: 5612c8950e1489f419ae1f0f,
jebno: '1231checka',
__v: 0,
photos:
[ '1445524441140_12023123_10156249375555727_859908445_n.jpg',
'1445524452856_12063857_919875394745615_3655186829888867333_n.jpg',
'1445524452873_491676259.jpg',
'1445524482917_12023123_10156249375555727_859908445_n.jpg',
'1445524894340_7a668c73cddcd2050821f83be901832a_1426070017.jpg',
'1445524894365_577161_424797084279112_1944605947_n.jpg',
'1445525002813_12063857_919875394745615_3655186829888867333_n.jpg' ] }
{ _id: 56645b9b29422ebad43b59be,
name: 'Ramesh Sharma',
email: '[email protected]',
password: 'ramesh',
jebno: '1455',
mobileno: '123456754',
address: 'Ramesh Chowk',
coverphoto: '1449689932496_12243392_10153773144324749_4504520513350378845_n.jpg',
ratings: 4,
totalratings: 12 }
非常感谢您的时间Bergi。这个解决方案如何与其他人发布的不同?我很好奇,我会对你会给予的观点做更多的研究。 –
@RananathanSwamy:它不会记录对象两次,但它更加高效和简洁(并且不需要那些外部变量 - 你确实在某处声明它们,对吗?)。我也移动了错误处理代码,以便在发生错误时不发送响应,这可能更干净。 – Bergi
令人惊叹的_/\ _。万分感谢。我不能接受两个答案真的很伤心。 @ idbehold的答案也是足够的。 –