0
function process(hugedirectory) {

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


        return title;       
    }

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

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

4

1 回答 1

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值传递给回调函数。

于 2013-03-25T03:47:27.420 回答