Node.js 节点js-API每次都无法返回正确的结果,导致下拉项不是常量

Node.js 节点js-API每次都无法返回正确的结果,导致下拉项不是常量,node.js,api,promise,Node.js,Api,Promise,如果我在这里做错了什么,第一个API返回SKU的列表,这些SKU在循环中被查询以获得构建列表。有时他们确实正确地获取了所有构建列表,但大多数时候我都会遇到这个错误 请求的资源不可用。ApacheTomcat/7.0.64 我在这里滥发API调用吗?如果我直接查询API,它可以正常工作 getVersionsForPlaytest: function (shiftTitleId, shiftPlatformId, email, callback) { //console.log('

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

请求的资源不可用。ApacheTomcat/7.0.64

我在这里滥发API调用吗?如果我直接查询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, []);
                    }
                }
            })
    }
getVersionsForPlaytest:函数(shiftitleid、shiftPlatformId、电子邮件、回调){
//log('getversions platform',shiftPlatformId);
客户端操作('GetSkusList')
帕拉姆斯先生({
“平台ID”:shiftPlatformId,
“标题ID”:shiftTitleId,
“用户”:电子邮件
})
.headers(getHeaders(电子邮件))
.执行(功能(错误、SKU){
如果(错误){
Log.error('Shift',未能获取“'+shiftitleId+'”,{err}的SKU);
回调(err);
}否则{
if(SKU.值.长度){
//log('getversions sku length-',sku.value.length);
var承诺=[];
var版本=[];
var i=0;
var len=skus.value.length;
而(我
使用async.series来解决此问题。我的错