Javascript:在promise完成之前返回fire

时间:2013-03-25 03:35:08

标签: javascript asynchronous promise

function process(hugedirectory) {

        var title = hugedirectory.getTitleEachFile().then(function(caption){            
            console.log(caption);
            return caption;
        });


        return title;       
    }

我有一个调用此方法的AJAX调用,但是现在,它将不返回任何内容。

console.log(caption)显示正确和预期的值。但是,此方法结束时不返回此值。

1 个答案:

答案 0 :(得分:3)

由于process使用异步函数调用,因此无法从方法返回值。

解决这类问题的方法是使用下面给出的回调函数

function process(hugedirectory, callback) {
    hugedirectory.getTitleEachFile().then(function(caption){            
        console.log(caption);
        callback(caption)
    });
}

process(hugedirectory, function(title){
    //Do something with title
})

在此而不是从process返回标题时,我们将回调函数传递给process,当异步调用完成并且生成的title值传递给回调函数。