如何重构此函数以支持回调?

时间:2016-04-22 14:50:45

标签: javascript node.js

此功能包含URL和功能。 它从URL获取一个JSON对象,该对象只有N个页面中的1个。 然后重复URL以获取每个页面的新JSON对象。 然后,它将提供的函数应用于每个接收的JSON对象。

LookUp只是选项的预建对象

export const getAndHandleData = (url, applyToEach) => {
  const firstLookup = new LookUp(url);
  request(firstLookup, (error, res, body) => {
    const numPagesToGet = parseInt(body.total, 10) / parseInt(body.pageSize, 10);
    for (let i = 1; i < numPagesToGet; i++) {
      const nextLookup = new LookUp(`${url}?page=${i + 1}`);
      request(nextLookup, applyToEach);
    }
    applyToEach(error, res, body);
  });
};

我希望能够添加一个回调函数参数,该参数在所有N个页面完成应用给定函数后调用。我可以用&#39; async&#39; foreach / series,但我希望尽可能避免添加其他依赖项。

有什么想法吗? promises中的Promises是原生的吗?我从未使用过它们。

修改

我已经意识到生成器是可用的,所以我只需在生成器被调用N次后调用回调。

0 个答案:

没有答案