【发布时间】:2017-06-29 06:15:49
【问题描述】:
我正在尝试使用async/await 执行此操作,但任何解决方案都很好。任何人都知道我可以如何改变这一点:
series[group].forEach(async (ele, j) => {
await $.ajax({
url: `templates/ele${ele}.template.html`,
success: function (data) {
const $copyEl = $(el).clone()
const r = new RegExp('\\{\\{\\s*' + item + '\\s*\\}\\}', 'g')
const html = $copyEl.html().replace(r, data)
$(html).insertBefore(parent)
},
error: function (e) {
console.error(e)
}
}).then(() => {
$(parent).detach()
if(i + 1 === outer_last && j + 1=== inner_last)
template_callback()
})
})
})
在最后一个.insertBefore() 完成之前不运行.detach()?
【问题讨论】:
-
forEach是同步的。它不知道异步函数。此外,将await和 promise 混合在一起很奇怪。 -
嗯,我认为你 可以 执行
foo.forEach(async...)(阻止每次交互)但不能执行async foo.forEach(...)(阻止整个forEach循环)。 . 无论如何,我关心的是 ajax 回调
标签: javascript jquery async-await ecmascript-2017