我想在NodeList
对象上执行一个函数,并对每个函数并行执行该函数。由于它是NodeList
,我没有.map
或.forEach
。
答案 0 :(得分:0)
NodeLists没有自己的map
功能对于并行执行并不重要。
您只需要获取您的承诺数组,并且可以使用简单的for
循环或在节点列表上使用Array.prototype.map.call
。
答案 1 :(得分:0)
这就是我做到的。
images = window.document.getElementsByTagName( 'img' )
imageMapFunction = Array.prototype.map.call( images, function ( each, index ) {
var deferred = Q.defer()
// ... some actions
deferred.resolve()
return deferred.promise
})
Q.all( imageMapFunction )
.then( function () {
// ... more stuff
}
以前我曾经尝试过这个,但是没有用。
Q.all( Array.prototype.map.call( images, function ( each, index ) {
//... etc, same as above
}))