【问题标题】:Trouble with Async/Await on APIs responseAPI 响应上的异步/等待问题
【发布时间】:2020-09-26 13:50:03
【问题描述】:

大家好,这是我第一个使用 Node.js 的应用,我在使用 async/await 时遇到了问题。
在我的 index.js 上,我有三个相互依赖的方法,但不知道该怎么做。

有人可以帮助我并在工作中教我吗?

async function Millennium_SendSMS() {

    // search for orders on Millennium's API
    let orders = await new listOrders().listOrders();

    // filter orders
    let filteredOrders = new filterOrders().filterOrders(orders);

    // send sms to the filtered orders
    filteredOrders.map(order => {
        new sendSmsRequest(order).sendSmsRequest();
    })
}

当我尝试运行上面的代码时,我从 filterOrders 方法收到一条错误消息,指出 var 订单是 undefined

更新:

listOrders 类

class listOrders {

    listOrders() {

        axios.get('http://mill.com/api/millenium_eco/pedido_venda/listapedidos')

            .then(listOrders => {

                return listOrders;
            })
    }
}

【问题讨论】:

  • 您当前的代码有什么问题。您是否收到错误。您能详细说明您面临的问题吗
  • 绝对!我正在更新线程。
  • 您必须向我们展示new listOrders().listOrders() 背后的代码。此外,这是一个看起来很奇怪的 API。类名至少应以大写字母开头,并且很少有方法与类具有完全相同的名称。
  • 我会马上解决的。
  • 需要返回axios.get函数的结果

标签: node.js api asynchronous async-await


【解决方案1】:

你还没有从你的类中的 listOrders 函数返回承诺,所以等待函数没有什么要解决的

向 listOrders 函数添加一个返回语句,如下所示,它会起作用

class listOrders {

    listOrders() {

        return axios.get('http://mill.com/api/millenium_eco/pedido_venda/listapedidos')

            .then(listOrders => {

                return listOrders;
            })
    }
}

【讨论】:

  • 由于某种原因它仍然返回未定义。
  • 您的 API 是否正确。您是否在控制台中看到任何错误
  • 是的,没错。如果我控制台记录结果(在 ListOrders 类中),那很好。如果我在 index.js 上控制台日志订单,它是未定义的。
猜你喜欢
  • 1970-01-01
  • 2011-09-03
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
相关资源
最近更新 更多