如何从异步函数返回

时间:2011-04-27 19:13:56

标签: javascript asynchronous

我的代码如下所示:

myObject.myMethod('imageCheck', function () {
    var image = new Image();
    image.onerror = function() {
        return false;

    };  
    image.onload = function() {
        return true;
    };
    image.src = 'http://www.example.com/image.jpg';         
});

但是,它不起作用,假设因为我的返回仅从匿名函数返回,而不是从名为imageCheck的函数返回。我怎样才能重写这个,以便整个函数返回true或false?

1 个答案:

答案 0 :(得分:6)

你必须使用回调,例如:

myObject.myMethod('imageCheck', function () {
    var image = new Image();
    image.onerror = function() {
        returnCallback(false);

    };  
    image.onload = function() {
        returnCallback(true);
    };
    image.src = 'http://www.example.com/image.jpg';         
});

function returnCallback(bool){
    //do something with bool
}