await 一个递归函数怎么才能正确执行 ?
preUpload: async function (e) {
……
await the.multiUpload({
path: pics
})
console.log('upload result: ', data)
}
multiUpload: async function (data) {
……
if (i < data.path.length) {
multiUpload(data) //递归,回调自己
} else {
wx.hideLoading()
}
……
}
当前 multiUpload 没有执行完,就输出 upload result 了
由于是递归,不清楚 promise 应该写在哪 … 试着将 resolve 写道 else 中,结果并没有执行 …
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你的
multiUpload
里没有return
,所以被当作return null
,所以就没法await
了。另外,如果是批量上传,这种递归并没有好处,还不如搞成队列或者
Promise.all
。multiUpload(data)
前加个await