Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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_Async Await - Fatal编程技术网

Javascript 在另一个函数中调用异步函数是否也会使另一个函数异步?

Javascript 在另一个函数中调用异步函数是否也会使另一个函数异步?,javascript,async-await,Javascript,Async Await,我想澄清一下。假设我有两个函数。一个是异步函数。如果我在另一个函数中调用该异步函数,该函数调用是否需要wait关键字,因此另一个函数也必须是异步函数 这就是我的思维方式。我以前没有因此而抛出任何错误。否调用异步函数的函数无法通过此异步,因为正常的计算仍在进行。只有等待异步函数的部分会休眠,只要它从异步函数得到一个应答 否则,hole程序将停止并仅等待您的异步答案,这样异步将无法运行。否调用异步函数的函数将无法通过此异步,因为正常计算仍在进行。只有等待异步函数的部分会休眠,只要它从异步函数得到一个

我想澄清一下。假设我有两个函数。一个是异步函数。如果我在另一个函数中调用该异步函数,该函数调用是否需要wait关键字,因此另一个函数也必须是异步函数


这就是我的思维方式。我以前没有因此而抛出任何错误。

否调用异步函数的函数无法通过此异步,因为正常的计算仍在进行。只有等待异步函数的部分会休眠,只要它从异步函数得到一个应答


否则,hole程序将停止并仅等待您的异步答案,这样异步将无法运行。

否调用异步函数的函数将无法通过此异步,因为正常计算仍在进行。只有等待异步函数的部分会休眠,只要它从异步函数得到一个应答

否则,hole程序将停止并等待您的异步应答,而异步将无法运行

该函数调用是否需要
await
关键字,因此另一个函数也必须是
异步函数

不可以。异步函数只是一个总是返回承诺的函数,它实际上与一个(从外部)返回承诺的普通函数没有什么区别

wait
关键字不是函数调用的修饰符。它只是等待调用返回的承诺值,这适用于任何其他表达式。您还可以像
const promise=someFunction()那样将其拆分;const result=等待承诺

该函数调用是否需要
await
关键字,因此另一个函数也必须是
异步函数

不可以。异步函数
只是一个总是返回承诺的函数,它实际上与一个(从外部)返回承诺的普通函数没有什么区别


wait
关键字不是函数调用的修饰符。它只是等待调用返回的承诺值,这适用于任何其他表达式。您还可以像
const promise=someFunction()那样将其拆分;const result=等待承诺

使用
async
关键字的函数:

  • 将返回一个承诺,该承诺解析为它返回的值
  • 支持
    await
    关键字,该关键字将使其进入睡眠状态,直到
    await
    关键字右侧的承诺得到解决
因此:

function async foo() {
    return 27;
}

function bar() {
    const return_value = foo();
}

foo();
foo
将返回解析为
27

return\u value
变量将显示承诺的值

除非您想将
bar
关键字更改为:

const return_value = await foo();

…这样,
bar
可以进入睡眠状态,直到
foo
返回的承诺解析为
27
(在这种情况下,
返回值将是
27
,而不是承诺)。

使用
async
关键字的函数:

  • 将返回一个承诺,该承诺解析为它返回的值
  • 支持
    await
    关键字,该关键字将使其进入睡眠状态,直到
    await
    关键字右侧的承诺得到解决
因此:

function async foo() {
    return 27;
}

function bar() {
    const return_value = foo();
}

foo();
foo
将返回解析为
27

return\u value
变量将显示承诺的值

除非您想将
bar
关键字更改为:

const return_value = await foo();

…这样,
bar
可以进入睡眠状态,直到
foo
返回的承诺解析为
27
(在这种情况下,
return\u value
将是
27
而不是承诺)。

您可以显式使用承诺而不是
await
。您可以显式使用承诺而不是
await