添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
淡定的板凳  ·  Python之Numpy基础 - 知乎·  8 月前    · 
耍酷的人字拖  ·  IntelliJ IDEA 的 Code ...·  10 月前    · 
淡定的板凳  ·  Makefile/扩展 - 简书·  1 年前    · 
旅行中的蛋挞  ·  VS2022 C# 新语法 ...·  1 年前    · 

代码如下面demo所示,在foreach的回调函数中进行判断,当循环到数组最后一位元素的时候,执行回调函数:

function callBack(){
	console.log('all done');
function f(){
    var count = 0;
    var arrTemp = [1, 2, 3];
    arrTemp.forEach((item, index, arr) => {
        count++;
        if(count === arr.length){
            this.callBack();
f()

使用Promise实现

实际工作中,当目标数组的元素内容比较复杂,在回调函数中没有办法进行简单的逻辑判断时,可以使用Promise.all 方法实现:

Promise.all(
    [1,2,3].map((item) => {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                console.log("in async function, item is" + item);
                resolve(item)
            },Math.random()*2000)
).then((result) => {
    console.log("all done");
    console.log("result are:", result);
				
JavaScript数组对象,有一个forEach方法,可枚举每一个数组元素,但并不支持类似for循环的break语法,中断循环: [1,2,3].forEach(function(item) { // if(!item) break; 不支持 解决办法,可抛出一个特殊异常,来中断forEach循环,原理: var BreakException = {}; try { [1, 2, 3].forEach(function(el) { console.log(el); if (el === 2) throw BreakException; } catch (e) { const ids = [1, 2, 3, 4, 5]; ids.forEach(id => { const list = http(id); //http为一个异步请求,拿到对应id的信息 result.push(list.name); console.log(result); // [] 结果事与愿违是一个空的数组,其实我们希望的结果打印对应id的信息name;原因在于http是一个异步请求,那么forEach函数回调
数组遍历中每次遍历都需要去请求getStaffCover接口,拿到该接口的结果拼接到数组的每一项,等到数组遍历完之后,拿到拼接好的数组。拼接的数组必须是最终遍历的结果,所以得等到所有的请求结束之后进行操作,使用map可以返回每一次异步请求的Promise合集,注意这里不需要return,然后使用Promise.all等待执行完所有的异步操作,然后才会执行后面的代码 const promise = nv.aiFaceData.items.map(async item => {
文章目录一、forEach方法二、回调函数的使用 一、forEach方法 forEach方法时数组变量调用的方法,参数有两个,一个是function,另一个是object,一般只用function的,而这个function就是回调函数。 二、回调函数的使用 <!DOCTYPE html> <meta charset="utf-8"> <title></title> <script type
  { symbol: “XFX”, price: 240.22, volume: 23432 },   { symbol: “TNZ”, price: 332.19, volume: 234 },   { symbol: “JXJ”, price: 120.22, volume: 5323 }, 你需要为其中的symbol创建一个新数组, 也就是 [ “XFX”, “TNZ”, “JXJ”] 一般可以用for循环实现: function