javascript - 如何在 extractIssueData 中使用文件路径?
问题描述
我正在使用请求 NPM 包,请求接受两个参数请求(URL、回调);
在这里,我想以某种方式将额外的参数传递给我的回调函数,我该怎么做。这是我正在尝试编写的代码
function extractIssues(url,filepath){
request(url,issueCb);
}
function issueCb(err,response,html)
{
if(err){
console.log(err+"at line 61");
}
else{
extractIssueData(html);
}
}
function extractIssueData(html){
let selTool = cheerio.load(html);
let arr = [];
let issueLinksArr = selTool(".flex-auto.min-width-0.p-2.pr-3.pr-md-2 > a");
let result="";
for(let i = 0;i<issueLinksArr.length;i++){
let issueLink = selTool(issueLinksArr[i]).attr("href");
let content = selTool(issueLinksArr[i]).text().trim().split("/n")[0];
let obj = {
link :issueLink,
content:content
}
let str = JSON.stringify(obj);
result = result + str + " ,"+ "\n" ;
}
console.log(result);
}
我想在 extractIssueData 中使用文件路径,所以我需要首先在 issueCb 中捕获它我该怎么做我找不到正确的答案。
解决方案
我可以为您创建一个使用回调函数的简单示例。这是我知道的一个愚蠢的例子,但它可以帮助你理解回调是如何工作的。
function myFunc(callback) {
let errMessage = "This is error callback";
let message = "This is normal message";
callback(errMessage, message);
}
function myCallbackFunc(err, result) {
if(!err) {
console.log(result);
return;
}
console.log(err);
}
myFunc(myCallbackFunc);
你不会像这样使用它,但是如果你想发送一个错误回调,你应该 null 到响应参数。像这样:
function myFunc(callback) {
let errMessage = "This is error callback";
let message = "This is normal message";
let somethingBadHappened = true;
if(somethingBadHappened) {
return callback(errMessage, null);
}
callback(null, message)
}
function myCallbackFunc(err, result) {
if(!err) {
console.log(result);
return;
}
console.log(err);
}
myFunc(myCallbackFunc);
推荐阅读
- html - 标题图片未出现
- laravel - 方法 Illuminate\Validation\Validator::validateCaptcha 不存在
- r - 如何使用 row_number (dplyr) 进行多条件过滤?
- javascript - 提交表单后如何更改 html 文本?
- c++ - 通过指针取消引用和递增给出不同的值并递减它而不是 C++
- kubernetes - 从远程主机访问 Kubernetes
- python-3.x - python中的正则表达式拆分
- ios - 当 Xcode 已经更新时,您的 Xcode 版本可能对于 Flutter 中的 iOS 版本来说太旧了
- cakephp-3.0 - CakePHP,覆盖收件人设置
- java - Gson:com.mysql.jdbc.JDBC4Connection 类声明了多个名为 connectionLifecycleInterceptors 的 JSON 字段