使函数等待返回值

时间:2020-10-26 17:31:50

标签: javascript node.js callback es6-promise

我的回调函数有点问题。代码流如下所示:

  • 调用queryDB()
  • QueryDB从API获取数据并调用回调
  • 回调返回数据
  • 在屏幕上打印数据
//index.js
console.log(dscAPI.queryDB(dscDB, 'recent'));

和功能

function getRecent(dscDB, callback) {
    const query = 'year=' + new Date().getFullYear();;
    const params = {
        type: 'master',
        per_page: '10'
    }

    dscDB.search(query, params)
        .then(function(data) {
           callback(data.results); 
        })
        .catch((err) => console.log(err));
}

function returnRecent(data) {
    console.log(data); //returns desired output
    return data; //returns undefined
}

module.exports = {
    queryDB: function(dscDB) {
        getRecent(dscDB, returnRecent);
    }
}

问题是:即使在console.log()之前,回调也返回未定义的内容。我一直在尝试使用async / await使其等待值,但似乎无法做到这一点。我读了这篇文章:https://github.com/maxogden/art-of-node#callbacks,并且以类似的方式构造了代码,但无济于事。 也许您有任何想法我应该如何处理?

0 个答案:

没有答案