gpt4 book ai didi

javascript - 当我们在回调中返回时 Javascript 映射的行为

转载 作者:行者123 更新时间:2023-11-30 20:14:57 24 4
gpt4 key购买 nike

我们通常在 Javascript 中使用“map”来获取新的和转换后的数组。在这种情况下是不同的。
这是一段来自 Service Worker 定义的代码。它旨在删除旧缓存并仅保留最新版本。

我主要关注“cacheNames.map”中发生的事情。因为,在某个时候,我们会输入“if”语句。基本上,当旧缓存已经存储时,新缓存将取而代之。

我的问题是:
1- 当“map”正在使用的回调中有一个“return”语句时会发生什么?即返回 caches.delete(cache)
2- 第一次执行“return”时,剩余的迭代会停止吗?

caches.keys().then(cacheNames => {
return Promise.all(
cacheNames.map(cache => {
if (cache !== cacheName) {
console.log('Service Worker: Clearing Old Cache');
return caches.delete(cache);
}
})
)
})

最佳答案

回调内部和外部的行为是相同的。

map 返回一个基于旧列表的新列表。映射函数内的 return 决定元素(在本例中为 cache )被替换为什么。在使用 return 未显式返回任何内容的情况下,将隐式返回 undefined

不,returnmap 的剩余迭代没有影响。同样,它只是决定新元素的值是什么。

关于javascript - 当我们在回调中返回时 Javascript 映射的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52017384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com