您好我正在尝试使用请求和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)
})

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