Javascript 如何在node.js中使此请求同步

Javascript 如何在node.js中使此请求同步,javascript,node.js,Javascript,Node.js,这是我的异步代码片段,通过提供网站URL,它可以正常工作。这是一个异步请求,我想让它成为一个同步请求 有人能帮我吗 我正在使用炼金术api获取提要 我正在从云端获取数据 var url=[网站名称] 对于(var j=0;jvar url=[网站名称] var请求=要求(“请求”); 功能promiseRequest(提要){ 返回新承诺(功能(解决、拒绝){ 请求('http://cloud.example.com/v3/mixes/contents?streamId=feed/“+feed/

这是我的异步代码片段,通过提供网站URL,它可以正常工作。这是一个异步请求,我想让它成为一个同步请求 有人能帮我吗 我正在使用炼金术api获取提要 我正在从云端获取数据
var url=[网站名称]
对于(var j=0;j
var url=[网站名称]
var请求=要求(“请求”);
功能promiseRequest(提要){
返回新承诺(功能(解决、拒绝){
请求('http://cloud.example.com/v3/mixes/contents?streamId=feed/“+feed/,
功能(错误、响应、正文)
{
如果(!error&&response.statusCode==200)
{
决议(机构);
}
其他的
{
拒绝(响应状态码)
}
});
}
}
函数getFeedsFromUrls(URL){
返回新承诺(功能(解决、拒绝){
var count=0,totalCount=url.length;
var结果=[];
对于(var j=0;j=totalCount){
决心(结果);
}
});
});
}
});
}
getFeedsFromUrls(URL)。然后(函数(结果){
控制台日志(结果);
})

同步请求将使nodejs服务器阻塞。我认为不会出现任何适合同步请求的情况。不,先生,为什么它会阻塞nodejs服务器,我正在使用alchemy Api通过promise js获取数据。我们不能使这个同步@gumingfengPromise构建以避免同步。在nodejs中,javascript env在单个线程中运行。如果存在长时间的同步javascript函数,则无法运行其他javascript。这就是块。承诺只是使异步脚本看起来更像同步脚本。我应该从循环还是从外部调用此函数?什么是“xxx”顺便说一句谢谢你的回答(y)
var urls = [website ur names]

var request = require('request');

function promiseRequest(feeds){
  return new Promise(function(resolve,reject){
    request('http://cloud.example.com/v3/mixes/contents?streamId=feed/'+feeds/,            
        function (error, response, body)    
     {
      if (!error && response.statusCode == 200) 
      {
        resolve(body);
      }
      else 
      {
        reject(response.statusCode);
      }
    });
  }
}

function getFeedsFromUrls(urls){
    return new Promise(function(resolve,reject){
        var count=0,totalCount = urls.length;
        var result=[];
        for(var j=0;j<urls.length;j++){
             alchemyapi.feeds("url",urls[j], {}, function(response) {
                 for(var i=0;i<response["feeds"].length;i++)
                    var feed = response["feeds"][i].feed;
                    promiseRequest(feed).then(function(data){
                        count++;
                        result.push(data);
                        if(count>=totalCount){
                            resolve(result);
                        }
                    }).catch(function(err){
                        count++;
                        if(count>=totalCount){
                            resolve(result);
                        }
                    });

            });
        }
    });
}

getFeedsFromUrls(urls).then(function(result){
    console.log(result);
})