使用 Async.parallel 我的参数的生命周期不会超过使用 MongoDB 的 NodeJS 中的异步调用
Using Async.parallel my parameter's life-span isn't outliving the asynchronous calls in NodeJS using MongoDB
由于以下代码是异步的,我相信'recipeData'数组的寿命不足以超过异步回调,所以我在全局数组中复制了数据,但我仍然收到相同的错误"类型错误:无法读取未定义的属性'_id'"。这是代码:
var tempArray;
function getAllRecipes( db, callback )
{
query( db, {}, 'recipes', function( err, recipeData )
{
tempArray = recipeData.slice();
if( err || !tempArray.length )
callback( err );
else
{
var taskArr = [];
for( var i=0; i < tempArray.length; i++ )
{
taskArr.push( function( iCallback )
{
getRecipeNotes( db, tempArray[ i ]._id, function( err2, noteData )
{
if( err2 )
iCallback( err2 );
tempArray[ i ].notes = noteData;
iCallback();
});
});
}
taskArr.push( function( err3 )
{
callback( err3, tempArray );
});
async.parallel( taskArr );
}
});
}
错误发生在调用"getRecipeNotes"时。
有人可以帮我找出我出错的地方吗?
谢谢。
另一种选择是使用 let i 代替 var i。不过,它是一个较新的功能(由去年发布的 ES6 标准化),并且在浏览器支持方面有一些限制。– 乔纳森·洛诺夫斯基 2 天前
let被Node 4.x及更高版本支持,前提是你"使用strict";以及(这是V8目前施加的临时限制)。如果您使用的是较低版本(0.12.x 等),--harmony 命令行标志可能会启用它。– 乔纳森·洛诺夫斯基 2 天前
相关文章:
- NodeJS expressJS使用multer和passport将文件上传并保存到MongoDB
- 不使用Nodejs连接mongodb上的默认端口
- 我可以使用Python和NodeJS中相同的MongoDB数据库吗
- nodejs 和 MongoDB 的 collection.find() 没有响应
- 导入多个集合(nodejs,mongodb)
- 带有NodeJS驱动程序的MongoDB聚合游标
- MongoDB nodeJS - 转换圆形结构
- 对于用NodeJS编写的递归MongoDB归档程序来说,这是一个好的架构吗
- mongodb用nodejs覆盖集合
- 如何通过回调访问nodejs中的mongodb计数结果
- 在游标,MongoDB和Nodejs中替换更新
- 如何使用 Nodejs 在远程 Mongodb 上进行 CRUD 操作
- 使用 NodeJS 和 Express 从 MongoDB 检索数据
- Mongodb Nodejs Regex Query
- mongodb-nodejs多插入问题
- MongoDB NodeJS进程内存不足
- 基于匹配查询更新所有文档和嵌入式文档中的字段.MongoDB NodeJS
- MongoDB/NodeJS查询从字典中获取数据
- MapReduce function MongoDB NodeJs
- 可以't使用MongoDB NodeJS Express从视图访问数据库