栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

节点猫鼬在循环中查找查询不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

节点猫鼬在循环中查找查询不起作用

欢迎来到异步世界:-)

使用Javascript,除了您的代码外,任何其他事情都会并行发生。这意味着在您的特定情况下,无法在循环结束之前调用回调。您有两种选择:

a)将循环从同步for循环重写为异步递归循环:

function asyncLoop( i, callback ) {    if( i < answers.length ) {        console.log(i)        var question_ans = eval('(' + answers[i]+ ')');        var question_to_find = question_ans.question.toString()        var ans = question_ans.ans.toString()        console.log(ans)        quiz.where("question",question_to_find).exec(function(err,results)  { console.log(ans, results) if (ans == "t") {     user_type = results.t   } else if (ans == "f") {     user_type=results.f       } asyncLoop( i+1, callback );        })    } else {        callback();    }}asyncLoop( 0, function() {    // put the pre that should happen after the loop here});

另外,我建议您学习此博客。它在异步循环阶梯上又包含两个步骤。非常有帮助,非常重要。

b)将您的异步函数调用放入格式为闭包的

(function( ans ) {})(ans);

并提供您要保留的变量(此处:)

ans

for (var i=0;i < answers.length;i++) {    console.log(i)    var question_ans = eval('(' + answers[i]+ ')');    var question_to_find = question_ans.question.toString()    var ans = question_ans.ans.toString()    console.log(ans)    (function( ans ) {        quiz.where("question",question_to_find).exec(function(err,results)  { console.log(ans, results) if (ans == "t") {     user_type = results.t   } else if (ans == "f") {     user_type=results.f       }        })    })(ans);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号