首页 > 解决方案 > 节点异步方法理解

问题描述

我有一个方法,我想在它可以运行之后的任何代码之前完成,但是当涉及到这个时我迷失了理解外部链接。

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

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。我见过嵌套函数、等待、异步的例子,但我迷路了

标签: node.jsasynchronous

解决方案


尝试:

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 关键字将具有 await 调用的函数定义为异步函数 - 并且可以通过在 await 前面添加您想要等待的代码部分。这有细微差别 - 但希望这会有所帮助。


推荐阅读