浅议 JavaScript 的 Promises/Futures 形式

翻译:猖獗的手艺宅

原文:
http://davidshariff.com/blog/…

本文首发微信民众号:jingchengyideng
迎接关注,天天都给你推送新颖的前端手艺文章

跟着 JavaScript 运用的不停增添,异步事宜驱动的应用程序变得愈来愈盛行。 然则,许多开发者常常面对的一个问题是:在异步环境中举行依赖于效果的操纵。

你可以常常会碰到相似的状况:

doA(function(aResult) {
    // 在b内做一些事变然后最先回调
    doB(aResult, function(bResult) {
        // b完成后,在c中做一些事变并最先回调
        doC(bResult, function(cResult) {
            // 完成后,在这里用doC()的效果做一些事变
        });
    });
});

因为每一个步骤都须要前面的步骤效果,所以常常会看到在回调中嵌套回调函数的形式。 这些嵌套回调终究会难以在较大的异步应用程序中保护、明白和范例。 简朴的异步流程会变得愈来愈庞杂。

在这类状况下运用的解决方案是 Promise/Futures 模子,它示意还没有发作的回调效果。 这个观点异常简朴,它不是在一个函数返回效果之前壅塞并守候其完成,而是在挪用对象时马上返回其许诺的将要完成的效果。 这会致使非壅塞行动:

doA()
    .then(function() { return doB(); })
    .then(function() { return doC(); })
    .done(function() { /* 在这里做末了要做的事变 */ });

运用 Promise / Future 模子编写代码可以享受到运用嵌套回调的大部分长处,同时可以使代码更清楚,更结构化,在大多数异步环境下,这些代码更易于保护,明白和范例。

Promise / Future 并非终究解决方案,另有许多其他解决方案,这些解决方案也都有各自的优缺点,应当针对差别的状况运用它们。

本文首发微信民众号:jingchengyideng
迎接关注,天天都给你推送新颖的前端手艺文章

    原文作者:疯狂的技术宅
    原文地址: https://segmentfault.com/a/1190000018036266
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞