回调函数是把函数当参数供函数体调用的函数

阅读下列代码,分析并思考下列问题:

  • 在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) }
posted @ 2024-02-23 22:47  惊朝  阅读(4)  评论(0编辑  收藏  举报