gpt4 book ai didi

javascript - 满足条件时执行异步函数的便捷语法

转载 作者:行者123 更新时间:2023-11-30 17:23:56 27 4
gpt4 key购买 nike

最近,我最终按照这些思路做了一些事情来实现异步函数的执行(async_1、async_2、async_3 必须按该顺序执行。)

if(async_1_possible)
{
async_1()
.then(function(result_1){
if(async_2_possible)
{
async_2()
.then(function(result_2){
sync(result_2);
async_3(result_1);
});
}
else
{
async_3(result_1);
}
});
}
else
{
if(async_2_possible)
{
async_2()
.then(function(result_2){
sync(result_2);
async_3();
});
}
else
{
async_3();
}
}

该代码很快就会变得非常难看...我正在寻找一种允许我这样做的语法:

if(async_1_possible){var queue += async_1};
if(async_2_possible){var queue += function(result_1){async_2();}};
if(async_3_possible){var queue += function(result_2){sync(result_2);async_3(result_1)}};

run queue();

编辑:修改示例以显示将 promise 结果传递给下一个并执行同步功能

编辑 2:查看了 q 库,但仍然没有看到实现上述过程的无痛方式

最佳答案

请查看控制流库,例如 asyncstep .这些可以帮助您组织异步回调和代码复杂的流程,这些流程在异步编码中非常糟糕(例如,排队、内部带有异步函数的循环等)

关于javascript - 满足条件时执行异步函数的便捷语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com