gpt4 book ai didi

javascript - 使用 Async.parallel 我的参数的生命周期不会超过使用 MongoDB 的 NodeJS 中的异步调用

转载 作者:可可西里 更新时间:2023-11-01 09:54:57 26 4
gpt4 key购买 nike

由于以下代码是异步的,我认为“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 及更高版本支持,前提是你“使用严格”;以及(这是 V8 目前强加的临时限制)。如果您使用的是较低版本(0.12.x 等),--harmony 命令行标志可能会启用它。 – 乔纳森·洛诺夫斯基 2 天前

关于javascript - 使用 Async.parallel 我的参数的生命周期不会超过使用 MongoDB 的 NodeJS 中的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35673129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com