解决foreach异步执行未完成,就执行另一个function的问题

使用new Promise 方法先执行getOnlineList(),forEach完成后,resolve值,再.then()执行其他function,解决异步执行的问题

相关代码:

const getOnlineList = function() {

   //需要先遍历的代码

    return new Promise(function(resolve, reject) {

        vm.onlinelist.forEach(item => {

        vm.onlinelistLength += item.course_booking.length;

    });

     resolve(vm.onlinelistLength);

    });

};

getOnlineList().then(() => {

     //后续执行代码

     fn && fn();

});

放上修改前后对比图: