首页 > 解决方案 > 承诺 {} - 异步函数返回等待

问题描述

为什么以下只显示我Promise { <pending> }

const Binance = require('binance-api-node').default;
const Client = Binance({
    apiKey: binanceAPIKey,
    apiSecret: binanceAPISecret
});

async function checkBTCAvgPriceLast24h() {
    return await Client.dailyStats({symbol: "BTCEUR"});
}

console.log(checkBTCAvgPriceLast24h());

不应该await等到解决或拒绝?

标签: javascriptnode.jsasync-await

解决方案


因为async函数本身返回 a Promise,并且您的代码不会等待它解析。

尝试链接您的函数调用,.then()它应该可以工作。

checkBTCAvgPriceLast24h().then(res => console.log(res));

请参阅下面的代码片段以更好地理解:

const someAsyncTask = () =>
  new Promise((res, rej) => {
    setTimeout(() => {
      res("Here's your data");
    }, 1000);
  });

async function main() {
  return await someAsyncTask();
}

main().then((res) => console.log(res));


推荐阅读