Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 Google地图服务的Node.js客户端响应速度慢且不连续_Javascript_Node.js_Google Maps_Google Places Api - Fatal编程技术网

Javascript Google地图服务的Node.js客户端响应速度慢且不连续

Javascript Google地图服务的Node.js客户端响应速度慢且不连续,javascript,node.js,google-maps,google-places-api,Javascript,Node.js,Google Maps,Google Places Api,整天我都在试图找出我在使用Node.js Client for Google Maps Services时犯的错误 我需要得到places函数可以返回的所有60个结果。这意味着我必须使用上一个请求返回给我的下一页\u令牌 const googleMapsClient = require( '@google/maps' ).createClient( { key : KEY , Promise : Promise } ); let arr = []; let tok = '';

整天我都在试图找出我在使用Node.js Client for Google Maps Services时犯的错误

我需要得到places函数可以返回的所有60个结果。这意味着我必须使用上一个请求返回给我的
下一页\u令牌

const googleMapsClient = require( '@google/maps' ).createClient( {
    key : KEY
    , Promise : Promise
} );

let arr = [];
let tok = '';

Locations.prototype.foo = function ( context, args, callback ) {
let next_page = token => {
    googleMapsClient.places( { pagetoken : tok } )
        .asPromise()
        .then( newResponse => {

            // if the request is invalid, retry after 200ms
            if ( newResponse.json.status === 'INVALID_REQUEST' ) {
                log.info("retrying", TAG);
                return setTimeout( next_page, 2000, token );
            }

            // adding element retrivied
            log.info("picking", TAG);
            Array.prototype.push.apply( arr, newResponse.json.results );

            // if there are no page anymore, return to the callback
            if ( newResponse.json.next_page_token == undefined ) {
                log.info("callbacking", TAG);
                return callback(null, arr);
            }

            log.info("requesting again", TAG);
            // if there are more pages, request again
            tok = newResponse.json.next_page_token;
            return next_page( tok );
        });
};

googleMapsClient.places( {
    query : 'restaurant',
    language : 'en',
    location : [ -33.86746, 151.207090 ],
    radius : 5000
} )
    .asPromise()
    .then( response => {
        Array.prototype.push.apply( arr, response.json.results );
        tok = response.json.next_page_token;
    } )
    .then( () => {
        next_page( tok );
    });
}

我试着看了一下,但不幸的是,我没能得到同样的结果

我的问题是,当我执行
GET
请求时,承诺大部分时间都超时。有时结果会很快或在30-45秒后返回


我在这里缺少什么?

因为我面临同样的问题,所以有什么改进吗