request-promise实现返回`null`

时间:2015-12-23 21:22:17

标签: javascript request return promise lodash

根据下面的代码示例,为什么getBatchedContent返回的值为null的任何想法?

import rp from 'request-promise';
import _ from 'lodash';

function getBatchedContent(size, page) {
  return Promise.resolve(fetchBatchedContent(size, page)); // Getting `null` here.
}

function fetchBatchedContent(size, page) {
  var options = {
    uri: `http://www.example.com/posts?type=vogue-fashion-shows&filter[posts_per_page]=${size}&page=${page}`
  };

  return rp(options)
    .then(function (res) {
      res = JSON.parse(res);
      // res is an array of content objects.
      return _.map(res, function (obj) { // logged value of `_.map()` is correct.
        return transformContent(obj);
      });
    });
}

function transformContent(obj) {
  return {
    id: obj.ID,
    title: obj.title,
    // etc.
  };
}

1 个答案:

答案 0 :(得分:1)

可能会向.catch(function (error) {debugger;})添加fetchBatchedContent。它会回归你的期望吗?

我不确定您输入Promise.resolve的内容可以直接导致null?这对我来说似乎很奇怪,即使Promise.resolve(Promise.reject('foo'))也会返回一个承诺。 (被拒绝的人)。