только один вызов axios работает внутри обратного вызова, в то время как мне нужно два вызова для работы с данными из первого в следующий - PullRequest
0 голосов
/ 30 октября 2018

У меня в компоненте есть EventListener для кнопки. Мне это нужно только таким способом. Я не могу создать событие в элементе кнопки. он имеет обратный вызов при нажатии, который вызывает функцию с именем getdata. эта функция выполняет выборку данных, а затем обновляет состояние с именем senddata когда senddata обновляется до true. он вызывает функцию под названием copservice который имеет два аксиоза вызовов один возвращает токен в качестве ответа, и этот токен должен быть отправлен на третий вызов в качестве заголовка, а затем мы получаем ответ. Я использовал async await .ive использовал axios chaining. Оба из них просто возвращаются после первого запроса Axios, а второй не вызывается

когда я использую promise.all ([обещание1, обещание2]), он запускается, но данные первого не доступны во втором.

когда я удаляю обратный вызов из прослушивателя событий-

          btn.addEventListener('click',this.getdata())

все работает должным образом, но работает до нажатия, как только я отображаю страницу так что у меня есть -

         componentDidMount(){
         // getbyid
          btn.addEventListener('click',()=>{this.getData()})
        }

При удалении обратного вызова код работает, но автоматически когда у меня есть обратный вызов, выполняется только один вызов Axios Я попытался удалить обратный вызов и использовать функцию в качестве ссылки, которая также не работает

         getData(){
        //get some data
       //update sendata state
       }
       componentDidUpdate(){
       if(this.state.senddata){

         this.copservice()}

это то, что я хочу в асинхронной функции

       async copservice(){
       const promise1=await axios.get(url)
       //get access token and send as header
       const promise2=await axios.post(url,body,headers)
       console.log(promise2.data.somedata)
       }

но поток просто прерывается после первого вызова axios

Я также пробовал использовать axios с цепью .then, но это показывает тот же результат Я пытался с обещанием. Все. Это работает, но я не могу отправить токен с первого звонка на второй звонок

...