【发布时间】:2021-01-25 11:53:04
【问题描述】:
我对 js 比较陌生,正在尝试找出 async-await。我缺少一些基本的东西。 我想制作一个阻塞的 HTTP GET,直到响应准备好。我构建了下面的代码,期望它打印出来:
main1 错误的 “一些数据” 主要2
而是打印:
main1 真的 不明确的 主要2
我怎样才能内联解决这个承诺?
const axios = require('axios');
'use strict'
let URLs= ["http://blah"];
main(process.argv)
function main(argv) {
console.log('main1');
const resp = httpgetimpl(URLs[0]);
console.log(resp instanceof Promise);
console.log(resp.data);
console.log('main2');
}
async function httpgetimpl(url) {
const resp = await axios.get(url);
return resp;
}
【问题讨论】:
-
await不会使任何东西同步。它使编写异步代码更容易。也就是说,只需将main和async function以及await设为您得到的承诺。 -
如果你在 httpgetimpl() 方法中
console.log(resp.data);你会得到什么? -
'use strict'应该是第一个生效的语句(在文件或函数中) -
@Ricardo Sanchez console.log(resp.data); => 打印响应,但在 main2 之后
-
试试
return await axios.get(url);
标签: javascript async-await axios