Javascript 使用Async/Await编写基于承诺的HTTP请求
是否可以将节点手册中的以下HTTP请求示例重写为使用Async/Await而不是Promissions?我熟悉带有resolve/reject的returnnewpromise方法,但更愿意使用async/awaitJavascript 使用Async/Await编写基于承诺的HTTP请求,javascript,node.js,Javascript,Node.js,是否可以将节点手册中的以下HTTP请求示例重写为使用Async/Await而不是Promissions?我熟悉带有resolve/reject的returnnewpromise方法,但更愿意使用async/await const postData = querystring.stringify({ 'msg': 'Hello World!' }); const options = { hostname: 'www.google.com',
const postData = querystring.stringify({
'msg': 'Hello World!'
});
const options = {
hostname: 'www.google.com',
port: 80,
path: '/upload',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(postData)
}
};
const req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
res.on('end', () => {
console.log('No more data in response.');
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
// write data to request body
req.write(postData);
req.end();
您发布的代码不使用承诺(
req
是一个事件发射器,更具体地说是一个实例),因此您不能在此处使用async
/wait
语法
我熟悉带有resolve/reject的returnnewpromise
方法,但更愿意使用async/await
不,您不能使用
async
/await
而不是反正使用。您可以将其用作然后
调用的语法糖。您不能使用异步
/等待
而不是承诺。您只能使用带有async
/await
语法的承诺。如果它是承诺,请确保您可以使用async/await
重写它,谢谢您的清晰说明。干杯