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



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

我尝试返回承诺,但没有奏效。

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)
    })

好的,我做到了:

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)
})

最新更新