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コールバック関数を渡し、結果の値がコールバック関数に渡されます。processtitle

于 2013-03-25T03:47:27.420 に答える