Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何提出不同的要求';是否在同一文档中使用nodejs和request进行响应?_Node.js_Http_Asynchronous_Get_Request - Fatal编程技术网

Node.js 如何提出不同的要求';是否在同一文档中使用nodejs和request进行响应?

Node.js 如何提出不同的要求';是否在同一文档中使用nodejs和request进行响应?,node.js,http,asynchronous,get,request,Node.js,Http,Asynchronous,Get,Request,嗨,我想把不同请求的响应放在同一个文档中。我有以下文件: var result = {google:"", twitter:"", facebook:""} 我想对这些网站(google.com、Facebook.com、twitter.com)执行不同的GET请求,并将所有结果放在相应字段中。 我尝试了嵌套回调,但这样我必须先做google调用,然后是twitter等,如下所示: Request({ url:first_url, },function(err, r

嗨,我想把不同请求的响应放在同一个文档中。我有以下文件:

var result = {google:"", twitter:"", facebook:""}
我想对这些网站(google.com、Facebook.com、twitter.com)执行不同的GET请求,并将所有结果放在相应字段中。 我尝试了嵌套回调,但这样我必须先做google调用,然后是twitter等,如下所示:

Request({
        url:first_url,
      },function(err, response, body) {
        if (err) {
             request.log(err);
        }else{
           risultato.google = body;
           Request({
        url:second_url,
      },function(err, response, body) {
        if (err) {
             request.log(err);
        }else{
           risultato.facebook = body;
           Request({
        url:third_url,
      },function(err, response, body) {
        if (err) {
             request.log(err);
        }else{
           risultato.twitter = body;
           console.log(result);
        }
       });
     }
   });
  }
 });
所以我必须知道如何并行处理所有请求,当我在result对象中得到所有请求的响应时,我必须使用它

您可以使用

你可以用


async
的另一种选择是使用Promise API。有一个
requestpromise
npm库(),它为每个请求返回一个承诺。我们可以发送每个URL的请求,然后简单地调用承诺。承诺列表中的所有内容:

const request = require('request-promise');
const urls = ['http://google.com', 'http://yelp.com'];

// List of Promises that resolve the original URL and the content
const resultPromises = urls.map(url => {
    return request(url).then(response => ({ url, response }));
});

Promise.all(resultPromises)
    .then(results => {
        // results is an array containing the URL and response for each URL
        console.log(results);
    });

async
的另一种选择是使用Promise API。有一个
requestpromise
npm库(),它为每个请求返回一个承诺。我们可以发送每个URL的请求,然后简单地调用承诺。承诺列表中的所有内容:

const request = require('request-promise');
const urls = ['http://google.com', 'http://yelp.com'];

// List of Promises that resolve the original URL and the content
const resultPromises = urls.map(url => {
    return request(url).then(response => ({ url, response }));
});

Promise.all(resultPromises)
    .then(results => {
        // results is an array containing the URL and response for each URL
        console.log(results);
    });