【问题标题】:Async/await with Express returns Promise { <pending> }使用 Express 的异步/等待返回 Promise { <pending> }
【发布时间】:2018-11-17 01:27:08
【问题描述】:

我正在尝试按照一些教程使用 async/await 函数,但我不知道为什么总是返回

Promise { <pending> }

这是我的代码:

function doubleAfter2Seconds(x) {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log(x);
            resolve(x * 2);
        }, 2000);
    });
}
async function get_media_async (media_id) {
    const a = await doubleAfter2Seconds(10);
    return a;
}


exports.get_media = function(media_id){
    var media_url = get_media_async(media_id);
    return media_url;
};

任何帮助将不胜感激!

【问题讨论】:

  • async/await 不会神奇地将异步代码转换为同步代码。一旦你有一些异步的东西,它所接触的所有东西也会变成异步的。所以你的get_media 函数也是异步的。

标签: node.js express async-await


【解决方案1】:

您还需要在 get_media 方法上执行 async/await。这是因为您在此方法中调用了async 函数get_media_async,因此这也需要是异步的。

exports.get_media = async function(media_id){
    var media_url = await get_media_async(media_id);
    return media_url;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 2019-08-02
    • 2021-03-17
    • 2020-03-04
    • 2019-12-08
    • 2020-07-09
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多