Skip to content Skip to sidebar Skip to footer

How Do I Call Three Requests In Order?

I am learning Node. I have a console app that must make requests to web services in order. Specifically, I need to make three requests in order. In an attempt to make these request

Solution 1:

Try this:

var https = require('https');
  var urls = ['url1', 'url2', 'url3'];

  var request = function(url) {
    console.log(url);
    returnnewPromise((resolve, reject) => {
      https.get(url, (res) => {
        res.on('end', () => {
          resolve('what');
        });

        res.on('data', data =>{

        });
      }).on('error', e => {
        reject(e);
      });
    });
  };

  var promise = request(urls.shift());
  while(urls.length > 0) {
    let url = urls.shift();
    promise = promise.then(function() {
      returnrequest(url);
    });
  }
  promise.catch(e =>console.log);

Solution 2:

consider use promise with reduce,something like this

var urls=['u1','u2','u3'];

var er=0functiongetPromise(url) {
    returnnewPromise(function (resolve,reject) {
        setTimeout(function () {
            console.log(url+ " is resolved in 2 sec")
            er++
            if(er==1)
            {
                reject(url)
            }else{
                resolve(url)
            }


        },2000)
    })
}



urls.reduce(function (pre,cur) {
    return pre.then(function () {
        returngetPromise(cur)
    })
},newPromise(function (resolve,reject) {
    resolve(null)
}))

.then(function (result) {
    console.log("final result is "+result)
},function (e) {
    console.log("something wrong happens : "+e)
})

Play with the code,I think it is want you want

Post a Comment for "How Do I Call Three Requests In Order?"