首页 > 解决方案 > HttpRequest 和嵌套函数中的范围规则

问题描述

JavaScript 新手,不太了解范围规则在我下面的代码中是如何工作的。

我有一个正则表达式,它通过 HTML 正文查找匹配项,将它们放入数组中,然后打印数组。

在'.then'中的那个函数之外,我试图重新打印数组的内容(只是为了了解范围是如何工作的)但没有打印任何内容,因为它认为数组的长度为 0;即使我对数组的声明是主函数方法的一部分。

不太确定这笔交易是什么?可能是根本缺乏理解=]

代码:

function search (url)
{
var method = "GET"

url = "https://www.amazon.ca/gp/product/B07PVNTCN1"  // Debug passed URL

console.debug(method + ":" + url)

var imageMatches =  ({})

HttpRequest
.get(url)
.timeout(5000)
.then(function(res) {

    var myRe = /hiRes\":\"https[^\"]*/g;
    imageMatches = res.body.match(myRe)

    //Prints Regex matches
    for (var i = 0; i < imageMatches.length; i++)
        console.log(imageMatches[i].replace("hiRes\":\"", ""))
})


// Below doesn't print anything (length is 0)
for (var j = 0; j < imageMatches.length; j++)
    console.log("Outside of Func:" + imageMatches[j])

    return imageMatches
}

标签: javascript

解决方案


推荐阅读