Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的请求承诺功能可以在Chrome中运行,而不能在Firefox或Safari中运行?_Javascript_Html_Asynchronous_Request_Request Promise - Fatal编程技术网

Javascript 为什么我的请求承诺功能可以在Chrome中运行,而不能在Firefox或Safari中运行?

Javascript 为什么我的请求承诺功能可以在Chrome中运行,而不能在Firefox或Safari中运行?,javascript,html,asynchronous,request,request-promise,Javascript,Html,Asynchronous,Request,Request Promise,我正在尝试使用一个脚本来创建一个网页,该网页使用requestpromise抓取并解析RSS提要。据我所知,requestpromise必须运行服务器端,所以我在html中外部调用脚本。我一直在使用localStorage.setItem和localStorage.getItem在外部脚本和另一个嵌入式脚本之间传递变量,该脚本将变量分配给html元素,这些元素应该作为文本显示在整个页面中 在Chrome中,当页面第一次加载时,它是空白的,但在我刷新一次之后,它就可以正常工作了。在Firefox和

我正在尝试使用一个脚本来创建一个网页,该网页使用requestpromise抓取并解析RSS提要。据我所知,requestpromise必须运行服务器端,所以我在html中外部调用脚本。我一直在使用localStorage.setItem和localStorage.getItem在外部脚本和另一个嵌入式脚本之间传递变量,该脚本将变量分配给html元素,这些元素应该作为文本显示在整个页面中

在Chrome中,当页面第一次加载时,它是空白的,但在我刷新一次之后,它就可以正常工作了。在Firefox和Safari中,无论我刷新多少次,它都保持空白。问题似乎是html没有从localStorage.getItem“接收”变量。我怀疑这与不同浏览器处理请求承诺函数的方式有关,但我被难住了。我做错了什么

以下是请求承诺脚本:

var xmltext
var latlonquery, latquery, lonquery, url

const rp = require('request-promise')
const options = {
            headers: {'user-agent': 'node.js'}
}

function doQuery() {
    latlonquery = new URLSearchParams(window.location.search)
    latquery = latlonquery.get("lat")
    lonquery = latlonquery.get("lon")
    url = "https://forecast.weather.gov/MapClick.php?lat=" + latquery + "&lon=" + lonquery + "&FcstType=digitalDWML"
}

function doRequest() {
return rp(url,options).then(function(html){
  return html
  })
}

doQuery()
doRequest().then(function(html){
                 xmltext = html
                 localStorage.setItem("xml_says_this", xmltext)
                 localStorage.setItem("lat_says_this", latquery)
                 localStorage.setItem("lon_says_this", lonquery)
})

您可以看到一个实际问题的示例。

据我所知,在浏览器方面不支持require。Chrome可能是一个例外,但方法是通过
-tag排除外部库。在初始化之前,还可以访问temp图表中的
datehour
。第一个问题出现在第一行:var xmltext=localStorage.getItem(“xml”表示“this”),当xmltext为null时……这是一个专门针对网络请求的问题。我也可以复制它:在Firefox上,weather.gov的响应负载是空的,但它是在Chrome上填充的。在我修复本地存储后,它在ff上工作