相关疑难解决方法(0)

同时循环与承诺

什么是惯用的方式做一些像承诺的while循环.所以:

如果条件仍然有效,请再做一次然后再做其他事情.

dosomething.then(possilblydomoresomethings).then(finish)
Run Code Online (Sandbox Code Playgroud)

我是这样做的,我想知道是否有更好/更多的自我方式?

var q = require('q');

var index = 1;

var useless =  function(){
        var currentIndex = index;
        console.log(currentIndex)
        var deferred = q.defer();
        setTimeout(function(){
            if(currentIndex > 10)
                deferred.resolve(false);
            else deferred.resolve(true);
            },500);
        return deferred.promise;
    }

var control = function(cont){
        var deferred = q.defer();
        if(cont){
                index = index + 1;
                useless().then(control).then(function(){
                        deferred.resolve();
                    });
            }
         else deferred.resolve();
        return deferred.promise;
    }

var chain = useless().then(control).then(function(){console.log('done')});
Run Code Online (Sandbox Code Playgroud)

输出:1 2 3 4 5 6 7 8 9 10 11完成

loops node.js promise q

69
推荐指数
5
解决办法
7万
查看次数

标签 统计

loops ×1

node.js ×1

promise ×1

q ×1