axios怎么实现同步机制

    async function getList() {
        return await axios({
            method: 'post',
            url:'/list/tododata/',
            data: json
            }).then(res => {
            return axios.get('/list/tododata',{
                params: { 
                    'page': newState.current,
                }
                }).then((res) => {
                    const data = res.data;
                    return data.results//想获取这个东西
                }).catch((error) => {
                    console.log(error);
                });
            }).catch((err) => {
            console.log(err);
            });
    }
    getList().then(value => {
        newState.list = value
    })
    return newState
   
   
    
async返回的还是一个Promise,获取Promise的值还是异步的,以至于最后return的newSate还是没有被更新,请问想要获取最新的newState该怎么改?
阅读 4.4k
2 个回答
  function postTododata() {
    return new Promise((resolve, reject) => {
      axios({
        method: 'post',
        url:'/list/tododata/',
        data: json
      }).then(res => {
        resolve(res.data);
      })
    })
  }

  function getTododata() {
    return new Promise((resolve, reject) => {
      axios({
        method: 'get',
        url:'/list/tododata/',
        params: { 
          'page': newState.current,
        }
      }).then(res => {
        resolve(res.data);
      })
    })
  }

  async function getList() {
    await postTododata();
    newState.list = await getTododata();
  }

  getList();
async function getList() {
  await axios({
    method: 'post',
    url:'/list/tododata/',
    data: json
  }).catch((error) => {
    console.log(error);
  });
  const results = await axios.get('/list/tododata',{
    params: { 
        'page': newState.current,
    }
  }).then((res) => {
    const data = res.data;
    return data.results;
  }).catch((error) => {
    console.log(error);
  });

  return results;
}
推荐问题