根据下面的代码示例,为什么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.
};
}
答案 0 :(得分:1)
可能会向.catch(function (error) {debugger;})
添加fetchBatchedContent
。它会回归你的期望吗?
我不确定您输入Promise.resolve
的内容可以直接导致null
?这对我来说似乎很奇怪,即使Promise.resolve(Promise.reject('foo'))
也会返回一个承诺。 (被拒绝的人)。