nodejs-express - node.js中如何让循环中的函数同步执行

查看:557
本文介绍了nodejs-express - node.js中如何让循环中的函数同步执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

最近学校开始选课了,我正在写刷课机练练手。其中最后一个步骤就是不断地给服务器post选课请求,我打算把这个post操作放在一个死循环中执行,通过回调函数控制何时跳出循环。想请教一下,node.js中如何让循环体中的函数同步顺序执行?我的代码大致如下:

while (1)
{
    request.post({
        url: url,
        form:
            {
                courseId: "123456" //课程信息
            },
        jar: cookieJar
    }, function (err, res, body)
    {
        console.log(res.statusCode);
        if (check(body)) //成功选上或没有余量了
        {
            ...跳出循环
        }
    });
}

我希望能够依次执行每一个post操作,输出statusCode后再执行下一个post。
感激不尽

解决方案

用递归:

function postData(){
    request.post({
            url: url,
            form:
                {
                    courseId: "123456" //课程信息
                },
            jar: cookieJar
        }, function (err, res, body)
        {
            console.log(res.statusCode);
            if (check(body)) //成功选上或没有余量了
            {
                return;
            }
            else{
                postData();
            }
        });
}

postData();

这篇关于nodejs-express - node.js中如何让循环中的函数同步执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆