node.js - 节点异步方法理解
问题描述
我有一个方法,我想在它可以运行之后的任何代码之前完成,但是当涉及到这个时我迷失了理解外部链接。
在一种方法中,我有以下代码
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。我见过嵌套函数、等待、异步的例子,但我迷路了
解决方案
尝试:
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 前面添加您想要等待的代码部分。这有细微差别 - 但希望这会有所帮助。
推荐阅读
- java - Java 问题:从 double 到 int 的可能有损转换
- d3.js - D3.js 使用 forceSimulation 以固定时间间隔生成新圆圈
- jvm - 将 SourceFile 类属性映射到实际文件系统路径的规范方法
- javascript - IE 不支持扩展运算符 (...) 如何解决此问题
- math - 求解具有几个变量的方程以获得最大值
- python - 使用 lmfit 最小化和基于似然的方法拟合 ODE 的初始条件
- ruby - 如何使用 Faker 生成标题和真实的英文文本
- mysql - 将 DBtable 中不匹配的项目显示为 item_name = 0
- flutter - Flutter Swiper (视频)
- python - 使用 Polyfit 预测行星的轨迹