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

Javascript 异步时获取模块外的变量请求,javascript,cheerio,npm-request,Javascript,Cheerio,Npm Request,嗨,我正在尝试使用request和cheerio获取它在异步进程的请求中返回的id变量 我试着回报一个承诺,但没有成功 let-id; 请求(mainUrl,函数(err,res,body){ let$=cheerio.load(正文) var links=$(“.book”).map(函数(){ 返回$(this.attr(“href”); }).get() var url=链接[0] var getId=url.match(/book\/show\/(\d+/) id=getId[1] /

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

我试着回报一个承诺,但没有成功

let-id;
请求(mainUrl,函数(err,res,body){
let$=cheerio.load(正文)
var links=$(“.book”).map(函数(){
返回$(this.attr(“href”);
}).get()
var url=链接[0]
var getId=url.match(/book\/show\/(\d+/)
id=getId[1]
//这是我得到的身份证:“36474”
返回承诺。解析(id)
});
。然后((值)=>{
控制台日志(id)
})
好的,我做到了:

let-id;
让承诺=新承诺((解决、拒绝)=>{
请求(mainUrl,函数(err,res,body){
let$=cheerio.load(正文)
var links=$(“.book”).map(函数(){
返回$(this.attr(“href”);
}).get()
var url=链接[0]
var getId=url.match(/book\/show\/(\d+/)
id=getId[1]
//例如:=>“36474”
返回解析(id)
});
})
承诺
。然后((值)=>{
控制台日志(id)

})
您使用的是什么请求库?看起来您使用的是基于回调的回调,可能不支持
。那么
“不工作”不是正确的技术问题诊断