请求触发后解决承诺

时间:2017-07-09 01:35:34

标签: javascript node.js

我有一个返回承诺的函数。在函数中,我遍历一个数组,并使用请求模块为数组中的每个元素发出请求。

一旦我得到每个请求的回复,我想解决这个承诺。现在我已经设法通过创建一个count变量并在计数达到与数组相同的长度时解析。这似乎不是一个强大/可行的选择。有没有其他方法可以等到最后一个请求回调被触发后才能解决。

function getSens(arr) {
    return new Promise(function(resolve, reject) {
        var count = 0;
        arr.forEach(function(a) {
            var data = postData;
            request.post({
                headers: { 'content-type': 'application/x-www-form-urlencoded' },
                url: apiEndpoint',
                body: data
            }, function(error, response, body) {
                count++;
                if (!error && response.statusCode == 200) {
                    let data = JSON.parse(body);
                    a['apiResponse'] = data;
                }
                if (count === a.length) {
                    resolve(ad);
                }
            });
        });
    });
}

`

0 个答案:

没有答案
相关问题