递归承诺会遭受内存泄漏吗?

时间:2016-05-13 09:05:55

标签: javascript promise ecmascript-6 es6-promise

考虑这个片段,函数b获取一个promise并在解析时自行调用以获得另一个promise:

var a = function () {
    var timeout = 1000;

    let time_promise = new Promise((resolve, reject) => {
        let success = false;

        setTimeout(()=> {
        document.getElementById('log').appendChild(document.createTextNode("Called   "));
            resolve();
        }, timeout);
        });

    return time_promise;

};

var b = function() {
    a().then(()=>{
        //is the first b() released after this call?
        b();
    });
};

b();

code on jsfiddle

我的问题是:在它自己调用之后是第一次调用b吗?请注意,对自身的调用是在必须调用then时调用的函数内部。

1 个答案:

答案 0 :(得分:1)

没有递归。 b并不称呼自己。回调调用b,并在b完成后调用回调。