chr*_*ris 10 javascript request node.js async-await
我希望控制台首先打印'1',但我不确定如何调用异步函数并等待其执行,然后再转到下一行代码.
const request = require('request');
async function getHtml()
{
await request('https://google.com/', function (error, response, body) {
console.log('1');
});
}
getHtml();
console.log('2');
Run Code Online (Sandbox Code Playgroud)
当然,我得到的输出是
2
1
Run Code Online (Sandbox Code Playgroud)
Tak*_*aki 17
返回值
一个Promise,它将使用async函数返回的值进行解析,或者在异步函数中抛出未捕获的异常而被拒绝.
异步函数将始终返回一个promise,您必须使用.then()或await访问其值
async function getHtml() {
const request = await $.get('https://jsonplaceholder.typicode.com/posts/1')
return request
}
getHtml()
.then((data) => { console.log('1')})
.then(() => { console.log('2')});
// OR
(async() => {
console.log('1')
await getHtml()
console.log('2')
})()Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
await如果想在继续或使用之前等待它解析,您应该使用异步函数.then()
await getHtml();
console.log('2');
Run Code Online (Sandbox Code Playgroud)
或者
getHtml()
.then(() => {
console.log('2');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13884 次 |
| 最近记录: |