我想将在request-promise中定义的变量传递给超出范围的变量。我以为可以在request函数中使用return语句传递变量,但是request函数总是返回http响应(在这种情况下为HTML输出)。
我的代码:
DeleteAttributes = list(set(ExceptionList).intersection(AttributeList))
此外,我想使用return语句将输出传递给get函数。有什么办法吗?
编辑:从我的角度来看,这不是this question的重复。该请求返回一个值,但这不是我想要如上所述返回的值。
答案 0 :(得分:1)
我想您的实现对于异步等待的请求承诺并不完美。 没有运行代码,但尝试下面的代码。
async function asyncCall(arg1, arg2, arg3, arg4){
try{
var first = await request(`https://www.googleapis.com/customsearch/v1?key=${process.env.API_KEY}&cx=${process.env.CX}&q=${arg1}`);
if(typeof first.body === "string"){
first.body = JSON.parse(first.body);
}
var obj = first.body;
var url = obj.items[0].formattedUrl;
var part = await request(`${url}/staffel-${arg2}/episode-${arg3}`)
if(typeof part.body === "string"){
part.body = JSON.parse(part.body);
}
var dom = new JSDOM(`${JSON.parse(part.body)}`)
return dom.window.document.getElementsByClassName(arg4)[0];
}
catch(e){
console.log(e);
}
}