小编Bri*_*ith的帖子

而使用蓝鸟承诺的循环

我正在尝试使用promises实现while循环.

这里概述的方法似乎有效. http://blog.victorquinn.com/javascript-promise-while-loop 它使用这样的函数

var Promise = require('bluebird');

var promiseWhile = function(condition, action) {
    var resolver = Promise.defer();

    var loop = function() {
        if (!condition()) return resolver.resolve();
        return Promise.cast(action())
            .then(loop)
            .catch(resolver.reject);
    };

    process.nextTick(loop);

    return resolver.promise;
};
Run Code Online (Sandbox Code Playgroud)

这似乎使用反模式和弃用的方法,如强制转换和延迟.

有谁知道更好或更现代的方法来实现这一目标?

谢谢

javascript promise bluebird

17
推荐指数
1
解决办法
8827
查看次数

标签 统计

bluebird ×1

javascript ×1

promise ×1