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