Promise.all(imgs.map(src =>loadImg(src)))

Promise.all(imgs.map(src =>loadImg(src)))

这句话是真的很难理解,我是这样想的Promise.all接受多个promise对象这个我知道就是要括号内返回多个promise对象,再往里面一层,imgs.map((src =>loadImg(src))我就不明白了,首先就蹦出个map方法根本没有听过具体到底怎么用老师直接一句话带过好像大家都无师自通一样,你说遍历吧,不应该是(img.maps(src)) =>loading (src)这样写吗,老师这种写法按之前的教我们思维只能把 src => loading(src)当作是imgs.map()的参数吧,那这样怎么出的来三个对象呢,明明是loadImg()里才能返回promise对象才对吧??说到底还是对这个map完全不了解也没交过。第二个就是 src => loading(src)这个写法之前好像就没有吧, src是参数 后面不是  src => { ...}不是这样写吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕久久 2020-07-16 10:00:52

同学你好,同学的疑惑,主要源自是map方法不会使用,现将map方法的使用,做如下说明:

map方法,是数组新增的方法,它会返回一个新数组,新数组中的元素是原始数组中的元素,调用函数,处理后的值。如下:

http://img1.sycdn.imooc.com//climg/5f0fb493090e0bb209670350.jpghttp://img1.sycdn.imooc.com//climg/5f0fb4970950a7f508310146.jpg

它可以简写成如下形式:

http://img1.sycdn.imooc.com//climg/5f0fb49d09e50b8408210300.jpg

上面的简写形式,对应了promise.all中的写法,如下:

http://img1.sycdn.imooc.com//climg/5f0fb4a30938099409040231.jpg

因此,imgs.map(src => loadImg(src))是遍历imgs数组中的每一项,对每一项(图片路径)调用loadImg()方法,然后将返回的结果(数组),传给Promise.all()方法。其中“imgs.map(src => loadImg(src))”的结果是个promise对象构成的数组。

由于js的方法很多,课程中不可能全部讲到,只能在实践中,遇到了,再补充。同学可以参考一下:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map 中对map的讲解,主要看例子就行,会简单使用即可。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • ZZZZZzn #1
    让老师自己教自己吧。。。。
    2020-07-18 22:13:42
  • 同学你好,千万别着急,哪里没懂呢?建议同学先把老师举得例子敲一下,这样就能知道map怎么用了,然后在仔细看一下其他的讲解,不会的再问,老师会帮你解答的。 祝学习愉快!
    2020-07-21 09:40:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师