请求后,我得到一个空数组。但是有人告诉我使用promises来获取其中包含项的数组。我尝试使用Promise,但仍然给我一个空数组。
此函数是异步的,但我希望先完成getrequest(),然后再完成console.log(items)
我该如何处理?我已经使用了resolve()。
var request = require('request-promise');
var items = [];
var item;
function getRequest() {
return new Promise((resolve, reject) => {
const options = {
"method": "GET",
"uri": "http://localhost:3000/api/orderitems",
"json": true,
"headers": {
"User-Agent": "My little demo app"
}
}
request(options)
.then(function(response) {
var obj = response;
for (var i = 0; i < obj.length; i++) {
for (var k = 0; k < obj[i].order.length; k++) {
for (var j = 0; j < obj[i].order[k].length; j++) {
item = obj[i].order[k][j].ingredient;
//console.log(item);
items.push(item);
}
}
}
resolve()
console.log(items);
})
.catch(function(err) {
console.log(err);
})
};
});
getRequest();
console.log(items);