大学里没学好,实战经验少。怎么解决同步的问题啊?当return后,还是要执行后面的函数,继续发请求?
发布于 5 年前 作者 chao89 7187 次浏览 来自 问答

4 回复

你可以百度下forEach的原理和如何跳出循环,你的截图代码中forEach里的return只是单纯的跳出单个循环函数,并没有跳出循环体,也没有跳出bingSave,全部改成for循环就没有问题

你这里的return只是结束了最里面的forEach的单次循环而已,所以没有达到你的期望,而且这样写性能也不好。

弹框了就不执行 request,不弹框才执行request是吧

async bindSave(){
    var t = this, flag = await ()=>{
        return new Promise((rs, rj)=>{
            let find = false
        for(var i in list1=t.data.objlist){
            if(find) break
            for(var k in list2=t.data.personalinfolist){
                if(list1[i].placeholder == list2[k].placeholder){
                    find = true
                    break
                }
            }
        }
            rs(find)
        })
    }
    if(flag){
        wx.showToast(...)
    }else{
        request(...)
    }
}

若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

整个标志位呗 if(flag) { request}

回到顶部