nodejs for循环 异步函数 回调函数

在尝试多个办法与在网上找了很多文章看,没有找到解决办法,只能用很蠢的层层叠加的办法了。

我在做的在for循环,里面先通过findOne(callback)查找数据库作出判断赋值给变量t,在用findOneandUpdate(callback)函数和变量t的值对数据库进行操作,但是这两个函数都包含callback函数,变量t以及各种操作几乎都在callback函数里面,他们的执行顺序并不会按照我们书写的顺序进行。

最后我的很蠢办法是
for(var i=0;i<l;i++)
{
(function(i){//不要忘记这里的i
$m.findOne(function(){
//各种操作
t=1;
if(t==1)
$m.fineOneandUpdate(function(){
//操作1
});
else{
$m.fineOneandUpdate(function(){
//操作2
});
}
});
})(i);//不要忘记这里的i
}

代码量太大了,可是我找不到解决办法,先过了这一关吧,以后有想法再优化代码。
(目前我是涉及到2个函数的操作,函数越多,这个层次越多就越容易乱。)

for循环与异步函数与回调函数:里面的异步函数要用匿名函数包装(回调函数才会在每一次循环中执行),多个异步函数之间如果有关系要尽可能嵌套。如果还是没有控制好就用**if…else…**限制。

20210506
学习之后重新回来说明一下对async、await的使用,把语句包装成函数更加简洁,而且可以实现更复杂的异步。(再配合上返回flag来实现会比较容易,看个人需求啦)
getResult();
async function getResult()
{
await a();
await b();
}
function a(){放异步函数}
function b(){放异步函数}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值