如果我们不等待异步 javascript 函数怎么办?

Meh*_*hdi 3 javascript asynchronous async-await

如果我们不等待异步 javascript 函数怎么办?

据我所知,像 C# 这样的一些语言不应该运行非托管的异步函数!

我想知道 JavaScript 语言是否也是如此?

var asynchronousFunction = async function() {
    //...
}

function main() {
   var result = true;
   //...
   asynchronousFunction(); // The result of this function has no effect on our output (result)
   //...
   return result;
}
Run Code Online (Sandbox Code Playgroud)

AKX*_*AKX 5

运行起来是一样的。(事实上​​,你从来都不是await一个函数,你等待它返回的 Promise。)

异步函数同步运行,直到第一个awaitreturn在其中,此时 aPromise返回给调用者,函数的其余部分安排稍后运行。

由调用者决定对 Promise 执行某些操作(或不执行任何操作)。毕竟,您可能希望将 Promise 存储在数组中并等待大量 Promise ( Promise.all) 或对其执行一些更深奥的操作,因此 JavaScript 本身并不关心。

不过,一些足够智能的 IDE 和 linter 能够针对未处理的 Promise 发出警告,特别是如果您有足够的类型信息来执行此操作(例如通过使用 TypeScript)。