Как передать идентификатор из другой константы в другую константу в JavaScript?

#javascript #jquery #arrays #axios #get

Вопрос:

У меня есть 2 API Get, которые я использовал для чтения данных. Первый API, который я использовал, — это чтение сведений о студенте. В этой студенческой информации есть идентификатор, который мне нужно прочитать из второго API и отобразить данные в первом API

Первый API-это getDetails, Второй API-это getClass

Я хочу передать e.student_class_id в getClass после того, как у меня будет имя класса, я верну имя класса в getDetails

 const getDetails= (infoID) =>
    {
        axios.get(`${apiInfo}student/getDetails?student_id=${infoID}`)
        .then(function (response) { 
            if(response.data.status == 'success')
            {
                
                e = response.data.resu<

                //passing this e.student_class_id;
                $('#tabClassName').html(`<div class="col-xl-12 row">
                                            <div class="col-xl-6">
                                                <h6>Class details</h6>
                                                <p>Class :<span class="item"> //and pass the class name here ? </span></p>
                                            </div>
                                        </div>
                                        `);
            }
        });
    }

    const getClass= () =>
    {
        axios.get(`${apiInfo}getClass`)
        .then(function (res) { 
            if(res.data.status == 'success')
                 {
                    res.data.result.map((e) =>{
                         if(e.id == 'how do I pass it the e.student_class_id here ?'){
                             // return``;
                            console.log(e.class_name);
                         }
                    });
            }
        });
    }
 

Комментарии:

1. вы можете использовать сеанс

2. сессия ? Как мне пройти его с помощью сеанса ?

Ответ №1:

Вам нужно пройти несколько шагов.

сначала вам нужно вернуть идентификатор e.student_class_id внутри метода then.

во-вторых, вам нужно вернуть всю цепочку «axios.get…».

Делая это, ваш getDetails возвращает обещание, которое разрешается в «e.student_class_id«.

     const getDetails = (infoID) => {
  return axios
    .get(`${apiInfo}student/getDetails?student_id=${infoID}`)
    .then(function (response) {
      if (response.data.status == "success") {
        e = response.data.resu<

        //passing this e.student_class_id;
        $("#tabClassName").html(`<div class="col-xl-12 row">
                                        <div class="col-xl-6">
                                            <h6>Class details</h6>
                                            <p>Class :<span class="item"> //and pass the class name here ? </span></p>
                                        </div>
                                    </div>
                                    `);
        return e.student_class_id;
      }
    });
};
 

результат был бы примерно таким :

 getDetail(1233).then(result=>.... // result is e.student_class_id
 

Нам также нужно отредактировать функцию getClass.

сначала он должен принять аргумент класса.

затем, если вы хотите использовать данные, которые вы получаете в getClass, где-то еще, вы должны вернуть это значение внутри метода then, и вам нужно вернуть axios.get. так же, как getDetail:

           const getClass = (classId) => {
  return axios.get(`${apiInfo}getClass`).then(function (res) {
    if (res.data.status == "success") {
      res.data.result.map((e) => {
        if (e.id == "how do I pass it the e.student_class_id here ?") {
          // return``;
          console.log(e.class_name);
        }
      });
    }
    return res; // or anything else that you may need
  });
};
 

наконец, вы можете использовать эти функции

 getDetails(123123).then(classId=>getClassId(classId)).then(dataFrom2ndApi=>...)
 

Комментарии:

1. Я не совсем понимаю, в чем getDetail(1233).then(result=>.... // result is e.student_class_id и в этой части getDetails(123123).then(classId=>getClassId(classId)).then(dataFrom2ndApi=>...) , куда я должен положить эти строки ?

2. Я получил e не определено, когда я добавляю return e.student_class_id

3. вы должны помещать эти строки всякий раз, когда они вам нужны, например, вы берете «идентификатор» из ввода, а затем используете последнюю строку в моем ответе с этим идентификатором. по поводу ошибки я отредактировал функцию getDetail. в функции getClass вам решать, что возвращать и куда возвращать, самое главное, чтобы ваше возвращаемое значение было в методе «тогда».