0

您好我正在尝试使用request和cheerio在异步过程中获取它在request中返回的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)

    })

4

1 回答 1

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)

})

于 2017-04-10T17:05:03.237 回答