Q.all在Node中的NodeList上

时间:2015-02-18 23:07:18

标签: javascript node.js q nodelist

我想在NodeList对象上执行一个函数,并对每个函数并行执行该函数。由于它是NodeList,我没有.map.forEach

2 个答案:

答案 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

}))