Node.js 节点异步方法理解

Node.js 节点异步方法理解,node.js,asynchronous,Node.js,Asynchronous,我有一个方法,我想在运行任何代码之前完成它,但当涉及到这个问题时,我无法理解外部链接 在一种方法中,我有以下代码 var x = someMethod("1","2","3"); // Finish before anything below can be ran 方法本身很简单 function someMethod(x,y,z){ if(1){ return "sdfh" } else if(2){ return "asdf" } e

我有一个方法,我想在运行任何代码之前完成它,但当涉及到这个问题时,我无法理解外部链接

在一种方法中,我有以下代码

var x = someMethod("1","2","3"); // Finish before anything below can be ran
方法本身很简单

function someMethod(x,y,z){
    if(1){
        return "sdfh"
    } else if(2){
        return "asdf"
    } else {
        return "ljkk"
    }
}
在继续下面的代码之前,如何检索x。我见过嵌套函数的示例,wait、async但am lost

Try:

const someMethod = (x, y, z) => {
  ...
};

const otherMethod = async () => {
  let x = 'before value';
  console.log(`before someMethod x: ${x}`);
  // Finish before anything below can be ran
  x = await someMethod("1", "2", "3"); 
  console.log(`after someMethod x: ${x}`);
};

基本上,您使用函数声明中的async关键字将具有wait调用的函数定义为异步函数,并且可以通过在wait前面加上前缀来表示希望等待的代码部分。这有细微差别,但希望这能有所帮助。

Java脚本是单线程和同步的。我建议查看JavaScript承诺。然而,我假设您的代码是同步执行的,直到它遇到类似于异步AJAX的东西为止。 请查看以下答案:
.

在您的情况下,
someMethod
是同步的,因此您的代码是正确的。但是如果
someMethod
是异步的,那么签名将是
异步函数someMethod(x,y,z)
,对它的调用是
var x=wait someMethod(“1”,“2”,“3”)如下:@Thom SyntaxError:await仅在异步中有效function@user3277468我是否只调用otherMethod()?在代码中先定义x,然后?