Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 谷歌云函数完成执行但从不进入回调_Javascript_Node.js_Google Cloud Platform_Google Cloud Storage - Fatal编程技术网

Javascript 谷歌云函数完成执行但从不进入回调

Javascript 谷歌云函数完成执行但从不进入回调,javascript,node.js,google-cloud-platform,google-cloud-storage,Javascript,Node.js,Google Cloud Platform,Google Cloud Storage,我正试图发出约25个请求,以获取一些数据并将响应保存到单独的文件中。 我正在使用npm请求模块通过一个基本的google云功能发出请求。每个请求可能需要0.5-5秒的时间才能返回响应。当脚本设置为发出少于10个请求时,所有内容都按预期工作,并将所有内容保存到适当的文件中。然而,除此之外,我没有收到任何请求的响应 for (i = 0; i < popIDS.length; i++) { for (j = 0; j < genreIDs.length; j++) {

我正试图发出约25个请求,以获取一些数据并将响应保存到单独的文件中。 我正在使用npm请求模块通过一个基本的google云功能发出请求。每个请求可能需要0.5-5秒的时间才能返回响应。当脚本设置为发出少于10个请求时,所有内容都按预期工作,并将所有内容保存到适当的文件中。然而,除此之外,我没有收到任何请求的响应

for (i = 0; i < popIDS.length; i++) {
    for (j = 0; j < genreIDs.length; j++) {
        fetchAndSaveToFile(popIDS[i], genreIDs[j], date);            
    }
}  
for(i=0;i
fetchAndSaveToFile
发出npm请求,并使用pako将压缩响应保存到Google云存储中的文件中。这本来是一个需要5次请求的问题,但是我增加了函数的超时时间,它开始工作,但是我将函数的超时时间最大化为9分钟。所有函数当前都在一个文件中

另外值得注意的是,popIDS[i]、genreid[j]的值不在回调中使用,并且不需要捕获'i'和'j'


我是否需要以不同的方式发出异步请求才能工作?我看到有一个异步请求模块处理这类事情。是否有需要配置的功能设置?或者我需要将其拆分为单独的文件,以便为每个请求设置9分钟的超时时间

我可以通过更新为使用
Promise.all()
并使用
newpromise
将请求调用映射到Promise对象来解决问题。将
Promise.all()。实现回调而不是承诺可能会导致谷歌云函数在所有回调完成之前过早退出。

可能重复@BrahmaDev我没有在回调中捕获
I
J
,因此我不确定它是否相关。