关于异步的处理方法

今天有个业务需求需要将数据分别传到后台加密处理,然后我这边再统一处理发送到后台。。。异步很麻烦的地方就是,你想要进行相关的操作就必须得在异步当中进行,不然同时执行了,是获取不到异步当中的数据的

var str = ""
for(var i = 0; i < arr.len; i++) {
    $.ajax({
    }).then(()=>{
         str += add[i].data
    })
}

console.log(str)

类似于上面这种感觉,这时候得到的肯定是个空字符串。但是怎么解决呢?

var str = ""
var count = 0;
for(var i = 0; i < arr.length; i++) {
    $.ajax({
    }).then(()=>{
        count++;
         str += add[i].data;
        if(count === arr.length) {
            console.log(str)
        }
    })
}

可以通过计数的方式,像上面这么写,这样可以得到最终的拼接字符串

正常情况的异步,可以通过回调的方式来解决,或者可以试试promise

原文地址:https://www.cnblogs.com/kugeliu/p/7005091.html