0
,所以我想通过帕萨特承诺这样一个jQuery Ajax请求:JavaScript的承诺<value>不确定
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);
})
})
}
寄托都运作良好的then()
内,执行console.log节目正是我想要的,但是当我使用console.log(foo)
它显示Promise { <state>: "fulfilled", <value>: undefined }
我不明白这里发生了什么,任何人都可以澄清?
预期结果是什么?我会期待'承诺{:“待定”}' –
只是想知道,你为什么手动创建一个承诺? '$ .ajax'返回一个承诺。如果你想坚持本地实现,只需使用'Promise.resolve()。然后(function(){return $ .ajax()})' –
@RolandStarke就像我的'foo.php'发送的对象数组'[0]:{bool:'foo',id:'bar'}' –