Node js -API每次无法返回正确的结果,导致下拉项目不变



我在这里做错了什么,第一个API返回SKU的列表,这些列表在循环中查询以获取构建列表。有时他们确实正确地获得了所有构建列表,但是大多数时间我都会得到此错误

不可用所请求的资源。apache tomcat/7.0.64

我在这里垃圾邮件吗?如果我直接查询API,则可以正常工作。

getVersionsForPlaytest: function (shiftTitleId, shiftPlatformId, email, callback) {
        //console.log('getversions platform ', shiftPlatformId);
        client.operation('GetSkusList')
            .params({
                'Platform ID': shiftPlatformId,
                'Title ID': shiftTitleId,
                'User': email
            })
            .headers(getHeaders(email))
            .execute(function (err, skus) {
                if (err) {
                    Log.error('Shift', 'Failed to get SKUs for "' + shiftTitleId + '"', {err});
                    callback(err);
                } else {
                    if (skus.value.length) {
                       // console.log('getversions sku length - ', skus.value.length);
                        var promises = [];
                        var versions = [];
                        var i = 0;
                        var len = skus.value.length;
                        while (i < len) {
                            (function (sku) {
                                promises.push(function (callback) {
                                    client.operation('GetBuildsList')
                                        .params({
                                            'SKU ID': sku['SKU ID'],
                                            'Lifecycle Status': 'Available',
                                            'Build Type': 'Playtest',
                                            'User': email
                                        })
                                        .headers(getHeaders(email))
                                        .execute(function (err, data) {
                                            if (err) {
                                                Log.error('Shift', 'Failed to get version for SKU "' + sku['SKU ID'] + '"', {err});
                                            } else if (data.value.length) {
                                               // console.log('getversions getbuildlist length - ', data.value.length);
                                                versions = versions.concat(data.value);
                                                //console.log('getversions getbuildlist - ', data.value);
                                            }
                                            callback();
                                        });
                                });
                            })
                            (skus.value[i]);
                            i++;
                        }
                        async.parallel(promises, function () {
                            versions = versions.map(function (item) {
                                item.buildId = item['Build ID'];
                                return item;
                            });
                            callback(err, versions);
                        });
                    } else {
                        callback(err, []);
                    }
                }
            })
    }

使用async.Series解决此问题。我的坏

最新更新