async function submitForm(e){
e.preventDefault()
console.log(e.target)
await axios.post('/api/<PATH>', {username, password})
.then(res => {
console.log(res.data)
const token = res.data.token
if (token){
const json = jwt.decode(token) as { [key: string]: string}
await axios.post('/api/<PATH>', { token })
.then(res => {
const data = res.data
问题出在这行
await axios.post('/api/<PATH>', { token })
我的IDE状态
TS1308:“等待”表达式仅在异步函数中以及模块的顶层使用。
当前无法编译,我正在尝试将令牌值传递给另一个axios API调用。但是,由于上述错误,目前这是不可能的。关于如何解决此问题的任何线索将不胜感激
答案 0 :(得分:2)
await
必须直接在async
函数中,您还需要使回调函数async
。
async function submitForm(e){
e.preventDefault()
console.log(e.target)
await axios.post('/api/<PATH>', {username, password})
// async here
.then(async res => {
console.log(res.data)
const token = res.data.token
if (token){
const json = jwt.decode(token) as { [key: string]: string}
await axios.post('/api/<PATH>', { token })
.then(res => {
const data = res.data
正如Bergi所提到的,混合使用await
和.then
是没有意义的,您的代码可能像这样:
async function submitForm(e){
e.preventDefault()
console.log(e.target)
let res = await axios.post('/api/<PATH>', {username, password})
console.log(res.data)
const token = res.data.token
if (token){
const json = jwt.decode(token) as { [key: string]: string}
res = await axios.post('/api/<PATH>', { token })
const data = res.data;