我编写的ruby函数遇到一个奇怪的问题,该函数用于从通过解析JSON字符串创建的哈希中删除不需要的项目。如本文底部所示,当函数中包含pry语句时,该函数将返回期望的结果。当我删除pry语句时,该函数返回其他内容。我不太确定为什么会这样,并想了一下在尝试找出解决问题的另一种方法时我会问这里。
下面,slides是由空格分隔的整数组成的字符串,这样slides.split('')返回一个整数数组。幻灯片组是解析的JSON哈希。如果需要,我可以提供一个带有JSON哈希值的文件,但是尝试在此处输入它变得令人沮丧。我认为没有必要看到哈希,因为问题似乎在于撬和它对函数的影响。
def selected_slides_and_groups
selected_slide_ids = slides.split(' ')
slide_groups = master_presentation.slide_groups
slide_groups.each do |slide_group|
delete_slides_from_group(slide_group, selected_slide_ids)
end
end
def delete_slides_from_group(slide_group, selected_slide_ids)
binding.pry
slide_group[:content].delete_if do |item|
if item[:type] == 'group'
delete_slides_from_group(item, selected_slide_ids)
elsif selected_slide_ids.include? item[:id]
next
else
true
end
end
binding.pry
end
答案 0 :(得分:1)
Ruby中的方法返回最后一个求值(除非另行指定),并且page.on('request', interceptedRequest => {
const resType = async interceptedRequest.resourceType();
if (resType === 'image') {
// download the image yourself
const body = await Promise.race([
fetchResourceYourself(interceptedRequest.url()), // might need to take care of cookies, headers, ...
new Promise(resolve => setTimeout(resolve, 5 * 1000)) // your timeout
]);
if (body) {
interceptedRequest.respond({ body });
} else {
interceptedRequest.abort();
}
} else {
interceptedRequest.continue();
}
});
调用返回binding.pry
。