阅读下列代码,分析并思考下列问题:
- 在selectProblem函数中,调用了problemStore.getProblemByTitle(),传递的参数是什么?传递给谁?
- getProblemByTitle函数体在哪里?callbackfunction函数体在哪里?
- 在ajax请求中,callbackfunction(JSON.parse(resp))是什么意思,里面的参数传给了谁?
// 声明了getProblemByTitle函数的参数是ProblemInterface[]或空类型,返回值类型是void
getProblemByTitle(problem_title:string, callbackfunction: (problems: ProblemInterface[] | null) => {}) {
$.ajax({
url: 'http://localhost:3000/problem/getproblembytitle/',
type: 'get',
headers: {
Authorization: 'Bearer ' + useUserStore().token,
},
data: {
'problem_title': problem_title
},
success: (resp:string)=>{
//返回值通过调用 callback 函数传递给外部
callbackfunction(JSON.parse(resp));
},
error: ()=>{
ElMessage.error("失败");
}
})
}
function selectProblem(){
result_form_visable.value = true;
problemStore.getProblemByTitle(inputdata.value, (list)=>{
console.log(list)
});
}
参考答案:
- 传递了两个参数,一个变量problem_title和一个函数callbackfunction,传递给了getProblemByTitle()函数
- getProblemByTitle函数体中有ajax请求,是ajax请求那一个代码块
- 它的意思是将JSON.parse(resp)作为参数传递给callbackfunction函数并调用它,callbackfunction函数体是 (list)=>{ console.log(list) }