【问题标题】:Providing callback in a _.forEach construct在 _.forEach 构造中提供回调
【发布时间】:2017-12-07 11:55:29
【问题描述】:

(在Postman环境下工作)检测到以下代码跑遍了所有的url请求,没有打印结果。

    _.forEach(
            urls,
            function (myUrl) {            
                pm.sendRequest({
                    url: myUrl,
                    method: 'GET',
                    header: {
                        'content-type': 'application/json'                    
                    }
                }, function (err, res) {
                    console.log(res)
                });            
            }
        )
        pm.environment.set(`sections`,sections);
    }

有没有办法在 forEach 中提供回调,可能看起来像下面给出的代码。或者有什么替代方法。

    function callback() {
        console.log('callback');
    }

    _.forEach(
            urls,
            function (myUrl,callback) {            
                pm.sendRequest({
                    url: myUrl,
                    method: 'GET',
                    header: {
                        'content-type': 'application/json'                    
                    }
                }, function (err, res) {
                    console.log(res)
                });            
            }
        )
        pm.environment.set(`sections`,sections);
    }

我最初以为最后的响应处理函数会处理这个问题,但它没有。

【问题讨论】:

  • 您不需要尝试将callback 作为参数传递,它已经在范围内,因此您可以简单地调用它

标签: javascript postman


【解决方案1】:

发现最好将逻辑分支到另一个函数 getUrl 并将回调传递给它。

以下代码有效:

_.forEach (
    urls,
    function (myUrl) {
        getUrl(myUrl,function (err,res) {
            if (err) {
                console.log(err);
            } else {
                console.log(JSON.stringify(res));
            }
        });
    }
);

function getUrl(myUrl, callback) {
    var call = {
        url: myUrl,
        method: 'GET',
        header: {
            "Authorization": `Bearer ${token}`,
            "Content-Type": "application/json"
        }
    };

    pm.sendRequest(
        call,
        function (err, res) {
            callback (err,res);
        }
    );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2011-05-21
    相关资源
    最近更新 更多