Pageres (phantomjs) 不 return 承诺

Pageres (phantomjs) does not return promise

我正在使用 Pageres 从多个网站生成屏幕截图。

一个来源,一切正常!

示例代码:

return new Pageres({})
   .src(url, sizes) // <- one URL
   .dest(dest)
   .run()

   .then((result) => {
      console.log("done");
      return result;
   })
   .catch((error) => {
       throw error;
   });

但是如果我想使用多个源并遍历我的数组,它 return 是一个 Pageres 对象而不是 Promise。

我的代码如下:

let pages = new Pageres({});

urls.forEach((url)=>{
    pages.src(url, size)
});
pages
    .dest(dest)
    .run()
    .then((result) => {
        console.log("done");
        return result
    })
    .catch((error) => {
        console.log("error", error);
        throw error;
    });
return pages;

有人知道为什么第一个示例有效而第二个示例无效吗? 我可以对第二个示例中的 return Promise 做些什么?

提前致谢!

我认为你可以使用 reduce

let pages = urls.reduce(
  (page,url)=>
    page.src(url,size),
  ,new Pageres({})
);
return pages
  .dest(dest)
  .run()
  .then((result) => {
      console.log("done");
      return result
  })
  .catch((error) => {
      console.log("error", error);
      throw error;
  });