如何 return 承诺中 body 的价值
How to return the value of body inside a promise
我正在尝试获取 promise 正文中的值(图像的二进制数据),如下所示。有没有办法将二进制数据转换为 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 编码?
由于 get(getImage)
的结果是一个承诺,您不能像访问变量那样访问该值。
您只能使用 await 在异步函数中获取结果(就像您上面所做的那样),或者在传递给 Promise.then()
的回调函数中执行您想要的任何操作
function getMedia(imgMsgUrl, auth) {
const getImage = {
url: imgMsgUrl,
oauth: auth,
};
var getto = get(getImage);
getto.then(result => {
doSomething(result)
});
};
我让它工作了。这是代码。
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;
};
我正在尝试获取 promise 正文中的值(图像的二进制数据),如下所示。有没有办法将二进制数据转换为 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 编码?
由于 get(getImage)
的结果是一个承诺,您不能像访问变量那样访问该值。
您只能使用 await 在异步函数中获取结果(就像您上面所做的那样),或者在传递给 Promise.then()
function getMedia(imgMsgUrl, auth) {
const getImage = {
url: imgMsgUrl,
oauth: auth,
};
var getto = get(getImage);
getto.then(result => {
doSomething(result)
});
};
我让它工作了。这是代码。
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;
};