在javascript中链接多个异步函数
我如何实现这种行为?我希望能够链接所有的方法,在这个例子中是一个接一个的加、减、乘、除,当我等待它们时,它应该返回与等待mongoose查询时相同的结果在javascript中链接多个异步函数,javascript,async-await,Javascript,Async Await,我如何实现这种行为?我希望能够链接所有的方法,在这个例子中是一个接一个的加、减、乘、除,当我等待它们时,它应该返回与等待mongoose查询时相同的结果 我知道普通的计算不是异步的,但是想象一下这些方法是异步的——达到预期效果的正确代码是什么样子的?您可以返回一个对象,其中包含加法、减法等方法。当调用这些方法时,重新分配实例的一个内部属性,该属性保持承诺。在链的末尾,访问实例上的Promise属性: 类计算{ 构造器{ this.prom=Promise.resolvenum; } 阿达格{
我知道普通的计算不是异步的,但是想象一下这些方法是异步的——达到预期效果的正确代码是什么样子的?您可以返回一个对象,其中包含加法、减法等方法。当调用这些方法时,重新分配实例的一个内部属性,该属性保持承诺。在链的末尾,访问实例上的Promise属性: 类计算{ 构造器{ this.prom=Promise.resolvenum; } 阿达格{ this.prom=this.prom.thenres=>res+arg; 归还这个; } 减去arg{ this.prom=this.prom.thenres=>res-arg; 归还这个; } 多码{ this.prom=this.prom.thenres=>res*arg; 归还这个; } } const getRes=async=>{ const res=等待新的计算10 .add30 .5 .倍数2 .毕业舞会; console.logres//打印结果 };
格特雷斯;你为什么要等待。这些函数是异步的吗?@hussain.codes是的,实际上我想弄清楚mongoose是如何链接其查询函数的,如排序、限制、选择等。。。。那么让我们假设所有这些函数都是异步的,现在我如何链接它们呢?
class Calc {
constructor(num) {
this.num = num;
}
add() {
// code
}
subtract() {
// code
}
multiply() {
// code
}
divide() {
// code
}
}
const getRes = async () => {
const res = await new Calc(10)
.add(30)
.subtract(5)
.multiply(2);
console.log(res) //prints the result
};
getRes();