首页 > 解决方案 > 如何在promise中返回body的值

问题描述

我试图在看起来像这样的承诺主体中获取值(这是图像的二进制数据)。有没有办法将二进制数据转换为 base64 编码?

"Promise"{
"IncomingMessage"{
    "_readableState":"ReadableState"{...
    },
    "readable":false,
    "_events":[...
    ]{...
    },
    "_eventsCount":4,
    "_maxListeners":"undefined",
    "socket":"TLSSocket"{...
    },
    "connection":"TLSSocket"{...
    },
    "httpVersionMajor":1,
    "httpVersionMinor":1,
    "httpVersion":"1.1",
    "complete":true,
    "headers":{...
    },
    "rawHeaders":[...
    ],
    "trailers":{...
    },
    "rawTrailers":[...
    ],
    "aborted":false,
    "upgrade":false,
    "url":"",
    "method":null,
    "statusCode":200,
    "statusMessage":"OK",
    "client":"TLSSocket"{...
    },
    "_consuming":true,
    "_dumped":false,
    "req":"ClientRequest"{...
    },
    "request":"Request"{...
    },
    "toJSON":[...
    ],
    "caseless":"Caseless"{...
    },
    "body": //binary values here

现在,访问它们的代码console.log(getto)在异步函数中

async function getMedia(imgMsgUrl, auth) {
const getImage = {
    url: imgMsgUrl,
    oauth: auth,
};
var getto = get(getImage);
await getto;
console.log(getto);
};

如何通过修改异步函数中的代码轻松访问正文?以及如何将其转换为 base64 编码?

标签: javascriptnode.jsjsontwitterrequest

解决方案


我让它工作。这是代码。

async function getMedia(imgMsgUrl, auth) {
const getImage = {
    url: imgMsgUrl,
    oauth: auth,
};
var getto = get(getImage).then(function(response) {
    let buffer = Buffer.from(response.body);
    let base64 = buffer.toString('base64');
    console.log(base64);
});
await getto;
};

推荐阅读