Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何调用异步函数_Javascript_Node.js_Request_Async Await - Fatal编程技术网

Javascript 如何调用异步函数

Javascript 如何调用异步函数,javascript,node.js,request,async-await,Javascript,Node.js,Request,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'); 当然,

我希望控制台先打印“1”,但我不确定如何调用异步函数并等待其执行,然后再转到下一行代码

const request = require('request');

async function getHtml() 
{
    await request('https://google.com/', function (error, response, body) {
    console.log('1');
  });

}

getHtml();
console.log('2');
当然,我得到的结果是

2
1

如果要在继续之前等待异步函数解析,或者使用
。then()

返回值

将使用异步函数返回的值解析的承诺,或使用异步函数内引发的未捕获异常拒绝的承诺

异步函数将始终返回一个承诺,您必须使用
.then()
wait
来访问它的值

异步函数getHtml(){ const request=wait$.get('https://jsonplaceholder.typicode.com/posts/1') 退货申请 } getHtml() .then((数据)=>{console.log('1')}) .then(()=>{console.log('2')}); //或 (异步()=>{ console.log('1') 等待getHtml() console.log('2') })()
async
关键字放在函数前面,使其成为异步函数。这对函数基本上有两个作用:

  • 如果函数没有返回承诺,JS引擎将把这个值包装成一个已解析的承诺。因此,函数将始终返回一个承诺
  • 我们现在可以在这个函数中使用
    wait
    关键字。
    wait
    关键字使“等待”承诺得以解决。这使我们能够以同步的方式编写异步代码。比如说 在您的示例中,
    console.log(2)
    总是首先完成,因为在JS应用程序中,同步代码总是在异步代码之前完成。承诺始终是异步的,因此也是异步的,顾名思义也是异步的。欲了解更多信息,请查看

    await getHtml();
    console.log('2');
    
    getHtml()
     .then(() => {
        console.log('2');
     });