【问题标题】:How can I make code wait for the return of an API call - Node.js如何让代码等待 API 调用的返回 - Node.js
【发布时间】:2021-01-13 03:19:20
【问题描述】:

我正在尝试编写一个函数来进行 API 调用并等待 API 返回一个值,我该如何改进我的代码来做到这一点。目前它只是返回 Promise-pending。

async function getData(options){

    
    const result = new Promise((resolve, reject) => {
        request(options, function(error, response) {
        if (error) return reject(error);
            
        return resolve(JSON.parse(response.body));
        });
    });
    
    var fromapi = await result;
    
    return fromapi;

};
    

【问题讨论】:

  • 尝试只做`await new Promise`而不将其存储在var中
  • requestdeprecated,你应该考虑使用http.request(),完成你想要实现的这个方法并不难。或者可以考虑axios
  • @bluejayke 但是如果我需要使用这个 API 请求的结果,我如何将它分配给一个变量?

标签: node.js api async-await request


【解决方案1】:

试试这个

const request = require('request')

function makeRequest(uri, options) {
    return new Promise((resolve, reject) => {
        return request(uri, options, function (error, response) {
            if (error) reject(error);
            resolve(response.body);
        });
    });
}

async function getData(options) {
    const result = await makeRequest('https://google.com', options)
    console.log(result)
}

getData().then(() => {

}).catch((e) => {
   console.log(e)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    相关资源
    最近更新 更多