【发布时间】:2021-12-06 00:00:44
【问题描述】:
我会使用异步函数作为普通同步函数,我尝试使用 await 但它仍然不起作用。
const getScript = (url) => {
return new Promise((resolve, reject) => {
const http = require('http'),
https = require('https');
let client = http;
if (url.toString().indexOf("https") === 0) {
client = https;
}
client.get(url, (resp) => {
let data = '';
// A chunk of data has been recieved.
resp.on('data', (chunk) => {
data += chunk;
});
// The whole response has been received. Print out the result.
resp.on('end', () => {
resolve(data);
});
}).on("error", (err) => {
reject(err);
});
});
};
async function getBody(url) {
(async (url) => {
return ("qwe" + await getScript(url));
})(url);
}
console.log(getBody('http://myurl.com/myapi'));
console.log("end");
但它仍然不会在 console.log “结束”之前加载数据。我哪里做错了?
【问题讨论】:
标签: javascript node.js async-await