异步时获取模块外请求的变量

时间:2017-04-10 16:55:46

标签: javascript cheerio npm-request

您好我正在尝试使用请求和cheerio在异步进程中获取它在请求中返回的id变量。

我已经尝试过返回Promise但是没有用。



let id;

    request(mainUrl, function(err, res, body) {  
                
        let $ = cheerio.load(body)

        var links= $(".book").map(function(){
         			return $(this).attr("href");
       	}).get()

    							
        var url= links[0]


        var getId= url.match(/book\/show\/(\d+)/)


        id= getId[1]
        //This is the id I'm getting: "36474"
    							
        return Promise.resolve(id)

    });


    .then((value)=>{
    	console.log(id)

    })




1 个答案:

答案 0 :(得分:0)

好的,我做到了:



let id;

let promise= new Promise((resolve, reject)=>{
			request(mainUrl, function(err, res, body) {  
            
      let $ = cheerio.load(body)

      var links= $(".book").map(function(){
     		return $(this).attr("href");
   		}).get()

							
      var url= links[0]


      var getId= url.match(/book\/show\/(\d+)/)


      id= getId[1]
      //Ex: => "36474"
							

      return resolve(id)

});
})


promise
.then((value)=>{
	console.log(id)

})