javascript promise <value> undefined

时间:2016-08-04 15:18:33

标签: javascript jquery promise

所以我试图通过这样的承诺传递一个jQuery ajax请求:

var foo;
foo = bar().then(function(response) {
    console.log("Success!", response);
    console.log(foo[0].bool);
}, function(error) {
    console.error("Failed!", error);
});

console.log(foo);

function bar(){
    return new Promise(function(resolve, rejected){
        $.ajax({
            url: 'foo.php',
            dataType: 'json',
            success: function (data) {
                resolve(data);
            }
        }).fail(function(xhr){
            rejected(xhr);
        })
    })
    }

Everthing在then()内很好用,console.log显示我想要的内容,但当我使用console.log(foo)时,它会显示Promise { <state>: "fulfilled", <value>: undefined }

我不明白这里发生了什么,有人可以澄清吗?

1 个答案:

答案 0 :(得分:0)

是的,不幸的是,在处理异常的javascript时,很多事情都是早期绊倒很多的事情之一。

作为您尝试执行的操作的替代方法,您将以与执行此操作相同的方式分配foo,然后将该Promise传递给它。然后,当您需要ajax请求的结果时,请使用.then()

foo.then(ajaxResult => console.log(ajaxResult));