我正在编写代码以接收来自新闻API的新闻,并向我发送每日电子邮件,其中包含基于cron职位的头条新闻。
我需要先接收数据,然后将其映射到一个变量中,我添加了async await,但由于某种原因它无法正常工作。
如果运行此代码,它将仅打印“摘要前”,就是这样。
如果有条件,它就不会进入内部,但是我对此进行了异步等待,因此服务器首先响应,然后继续执行代码,并具有“新闻”进行摘要。
const cron = require("node-cron");
const express = require("express");
const moment = require("moment")
const axios = require("axios")
app = express();
var news;
app.listen("3000")
//I removed my API key from the code and wrote 'MYAPIKEY'.
async function getNews(){
let response = await axios.get('https://newsapi.org/v2/everything?q=bitcoin&from=2018-11-12&sortBy=publishedAt&apiKey=MYAPIKEY')
.then( response =>
news = response.data.articles
)
}
getNews()
console.log('Before summary')
if (news) {
var summary = news.map( newsItem => newsItem.title )
console.log(summary)
}
答案 0 :(得分:1)
如果您正在使用async
async function getNews() {
try {
let response = await axios.get('https://newsapi.org/v2/everything?q=bitcoin&from=2018-11-12&sortBy=publishedAt&apiKey=MYAPIKEY');
var news = response.data.articles;
if (news) {
var summary = news.map(newsItem => newsItem.title) console.log(summary)
}
} catch (err) {
console.error(error);
}
}
getNews();