即使在承诺时也回调金字塔[重复]

Posted

技术标签:

【中文标题】即使在承诺时也回调金字塔[重复]【英文标题】:Callback pyramid even with When Promise [duplicate] 【发布时间】:2014-05-21 14:27:45 【问题描述】:

我有 3 个函数要一个接一个地执行,只有在前一个函数完成其任务时。我为此使用When Promise 库,

function taskA()
    var d = when.defer();
    d.resolve();
    return d.promise;

function taskB()
    var d = when.defer();
    d.resolve();
    return d.promise;

function taskC()
    var d = when.defer();
    d.resolve();
    return d.promise;


taskA().then(function()
    taskB().then(function()
        taskC().then(function()
); ); );

这是应该的吗?我的印象是我可以使用 Promise 轻松避免回调及其“末日金字塔”,还是我用错了?

【问题讨论】:

【参考方案1】:

怎么样

taskA()
   .then(taskB)
   .then(taskC)
   .then(function());

【讨论】:

这是因为 promises 解包。当您从 .then 处理程序返回一个承诺时,它将等到该承诺解决后再执行 ext one。

以上是关于即使在承诺时也回调金字塔[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Promise(避免金字塔回调)

Nodejs 异步编程 - 为啥需要“异步”模块?啥是“回调地狱”/“末日金字塔”?

使用javascript for循环创建金字塔[重复]

Android中,activity生命周期是指啥?

Activity的生命周期

Node.js 承诺会间歇性地失败,即使在处理时也是如此