我正在尝试在一个承诺内部克隆一个对象并迭代其属性。
这似乎是有效的,您将获得一个对象数组,在其中
然而,上述示例每次都是从头创建一个对象。当我尝试克隆一个现有的对象时,就会出现下面描述的行为。
或者
这似乎是有效的,您将获得一个对象数组,在其中
page_num
从2增加到44。var allOptions = _.map(_.range(2, 45), function(page){
return { body: { action: 'read', page_num: page, page_size: 5 }}
})
Promise.map(allOptions, function(options){
return Promise.resolve(options).delay(3000)
}).then(console.log)
然而,上述示例每次都是从头创建一个对象。当我尝试克隆一个现有的对象时,就会出现下面描述的行为。
var masterOptions = { body: { action: 'read', page_num: 1, page_size: 5 }}
var allOptions = _.map(_.range(2, 45), function(page){
var options = _.clone(masterOptions)
options.body.page_num = page
return options
})
Promise.map(allOptions, function(options){
return Promise.resolve(options).delay(3000)
}).then(console.log)
或者
Promise.map(_.range(2, 45), function(page){
var options = _.clone(masterOptions)
options.body.page_num = page
return Promise.resolve(options).delay(3000)
}).then(console.log)
这些似乎不起作用,选项对象似乎在每次迭代时都会遍历最后生成的对象{ body: { action: 'read', page_num: 44, page_size: 5 } }
。
我该如何克隆一个对象并遍历它的属性之一?
console.log(allOptions)
不是可以得到相同的结果吗? - Bergi