- 31
- 0
项目中有一个数据是二层嵌套数组,数据类型类似这样
questions: [
{
type: 'INPUT',
answer: 'helloworld'
},
{
type: 'SELECT',
answer: '1'
},
{
type: 'GROUP',
sub_questions: [
{
type: 'INPUT',
answer: 'hihi'
},
{
type: 'SELECT',
answer: '2'
}
]}
]
然后我要通过重组数据将这些数据展示出来,但是select显示的值并不是answer,而是将answer传到后端然后拿到的一个结果。
let answer_arr = [];
questions.forEach(async (question) => {
let single_answer = {type: question.type};
if (question.type === 'INPUT') {
single_answer.answer = question.answer;
} else if (question.type === 'SELECT') {
await axios.post('xxxx', {code: question.code}).then(res => {single_answer.answer = res.data.data})
} else if (question.type === 'GROUP') {
single_answer.answer = [];
question.sub_questions.forEach(async (sub_question) => {
let single_sub_answer = {type: sub_question.type};
if (sub_question.type === 'INPUT') {
single_sub_answer.answer = question.answer;
} else if (sub_question.type === 'SELECT') {
await axios.post('xxxx', {code: sub_question.code}).then(res => {single_sub_answer.answer = res.data.data})
single_answer.answer.push(single_sub_answer )
})
}
answer_arr.push(single_answer)
})
期望得到的结果就是
answer_arr = [
{
type: 'INPUT',
answer: 'helloworld'
},
{
type: 'SELECT',
answer: 1对应的值
},
{
type: 'GROUP',
answer: [
{
type: 'INPUT',
answer: 'hihi'
},
{
type: 'SELECT',
answer: 2对应的值
},
]
}
]
但是执行后发现await并没有生效,answer_arr 中 type为SELECT时,并没有answer。。。
是不是async/await用法不对。。。
- 共 0 条
- 全部回答
-
年华消逝淡忘 普通会员 1楼
在JavaScript中,async/await是改进async/await的语法和用法的一种方法。在async函数中使用await,可以更清晰地表达代码的执行流程,并可以避免回调地狱。
然而,使用async/await时,也可能会遇到一些问题。以下是一些常见的问题:
-
语法错误:使用async/await可能会导致语法错误。这通常是由于未正确导入async关键字或者在函数体中直接使用await未返回一个Promise的情况。
-
代码不清晰:如果async/await没有正确地应用于函数体中,可能会导致代码看起来不清晰。例如,async函数可能是一个复杂的函数,但使用await可能使代码看起来过于复杂。
-
无法获取结果:async/await可能会导致无法获取结果。例如,一个async函数可能需要使用await等待某个异步操作完成,但在异步操作完成后,await可能不会等待,这可能会导致程序在等待异步操作完成后结束。
-
无法处理错误:async/await可能会导致无法处理错误。例如,一个async函数可能返回一个Promise,但在处理Promise时可能会抛出错误,而async/await可能会将错误处理问题移交给异步操作,这可能会导致程序在错误发生时结束。
解决这些问题的方法是在使用async/await之前,先确保正确导入async关键字,并且在函数体中正确地使用await。同时,也要注意在处理async/await的错误时,确保将错误处理问题移交给异步操作。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
