Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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 如何从链接中获取图像并使用画布将它们合并到node.js中_Javascript_Node.js_Canvas_Asynchronous_Request - Fatal编程技术网

Javascript 如何从链接中获取图像并使用画布将它们合并到node.js中

Javascript 如何从链接中获取图像并使用画布将它们合并到node.js中,javascript,node.js,canvas,asynchronous,request,Javascript,Node.js,Canvas,Asynchronous,Request,我写了一个api从谷歌街景中获取图像,我想把它们合并成图像 api ex: 参数:缩放:1到5 lat和lng是坐标 我在forEach循环中使用请求模块,但它是一个异步回调。所以我不能合并图像 // declare forEach(data.images, function(image){ request(image.url, ..., function(err,res,body){ var img = new Canvas.Image(); img.src =

我写了一个api从谷歌街景中获取图像,我想把它们合并成图像

api ex:

参数:缩放:1到5 lat和lng是坐标

我在forEach循环中使用请求模块,但它是一个异步回调。所以我不能合并图像

// declare
forEach(data.images, function(image){
   request(image.url, ..., function(err,res,body){
      var img = new Canvas.Image();
      img.src = new Buffer(body,'binary');
      // canvas code process ...
   });
console.log(canvas.toDataURL());
});

我不知道您使用的任何API,但是如果它是异步的,那么就使用回调。我使用google API,并且我创建了我的所有者API。它响应列:26,行:13,波浪宽度:512,波浪高度:512,宽度:13312,高度:6656和图像对象。是的,但是,如果
请求
是异步的,那么
控制台.log(canvas.toDataURL())在完成之前被调用,因此在绘制任何内容之前被调用。所以,使用回调函数,只有当所有的
请求都完成时才调用它。我知道这一点。但我不知道该怎么改