Может быть, это поможет. Длинный, но он работает.
const myModule = {
state: {
test: "modulle",
settings: {
one: "This is one",
two: "This is two",
three: "This is three"
}
}
};
const store = new Vuex.Store({
modules: { myModule }
});
new Vue({
el: "#app",
store,
data() {
return {
listContent: [
{
name: "1",
icon: "person",
value: null
},
{
name: "2",
icon: "person",
value: null
},
{
name: "3",
icon: "person",
value: null
}
]
};
},
watch:{
'$store.state.myModule.settings.one':{
immediate:true,
handler:function(value){
this.listContent[0].value = value;
}
},
'$store.state.myModule.settings.two':{
immediate:true,
handler:function(value){
this.listContent[1].value = value;
}
},
'$store.state.myModule.settings.three':{
immediate:true,
handler:function(value){
this.listContent[2].value = value;
}
},
}
});
Вы можете использовать цикл while
, например:
offset = 0
end_reached = false
while !end_reached
response1 = External::getdataApi.call({country_ids: 'gb', extras: 'hotel_info', offset: offset})
response1 = response1.instance_variable_get(:@response)
# increase offset by 1000
offset += 1000
# if result count is different from 1000 means the end was reached, set end_reached var to true so loop ends
end_reached = true if response1['result'].count != 1000
end
или цикл until
, например:
offset = 0
end_reached = false
until end_reached
response1 = External::getdataApi.call({country_ids: 'gb', extras: 'hotel_info', offset: offset})
response1 = response1.instance_variable_get(:@response)
# increase offset by 1000
offset += 1000
# if result count is different from 1000 means the end was reached, set end_reached var to true so loop ends
end_reached = true if response1['result'].count != 1000
end
Я предпочитаю последний, потому что думаю это читается лучше
Вы можете использовать метод upto
для Integer для достижения этой цели. Ваш код будет выглядеть примерно так:
MAX = 100 # or whatever is reasonable
1.upto(MAX) do |index|
offset = index * 1000
response1 = External::getdataApi.call({country_ids: 'gb', extras: 'hotel_info', offset: offset})
response1 = response1.instance_variable_get(:@response)
# process response
break if response1['result'].count != 1000
end
Ruby 2.6 также имеет концепцию бесконечности , и вместо этого вы можете заменить 1.upto(MAX)
на: (1..).each
, если вы используете это версия.