Javascript 如何更改jQuery Ajax done回调参数
我希望函数能够完成这些任务,并且是一个异步函数:Javascript 如何更改jQuery Ajax done回调参数,javascript,jquery,ajax,ecmascript-6,promise,Javascript,Jquery,Ajax,Ecmascript 6,Promise,我希望函数能够完成这些任务,并且是一个异步函数: 使用jQuery$.get下载json 使用json创建一个对象 返回对象 所以如果我打电话 func.then(a => { ... }) “a”将是在步骤2中创建的对象 所以我写了, createObj(sourceUrl) { return $.get(sourceUrl).done((data)=> { let thing = new Something();
所以如果我打电话
func.then(a => {
...
})
“a”将是在步骤2中创建的对象
所以我写了,
createObj(sourceUrl) {
return $.get(sourceUrl).done((data)=> {
let thing = new Something();
thing.id = data.id;
thing.messages = data.messages;
return Promise.resolve(thing);
})
}
我称之为
this.createObj(url).done((thing) => {
console.log('Got a', thing);
return thing.go()
}
当我调用它时,我希望“.done()”部分将收到在“createObj()”中创建的“thing”然而,它原来是我在$.get()中得到的json 我是否误解了“解决”的概念 或者jQueryAjax的行为与标准ES6承诺不同?因为我在另一部分写了一些带有Promise.resolve的东西,它很有效这应该有效:
const createObj = (sourceUrl) => {
return new Promise((resolve, reject) => {
$.get(sourceUrl).done((data)=> {
let thing = new Something();
thing.id = data.id;
thing.messages = data.messages;
return resolve(thing);
});
});
}
createObj(url)
.then((data) => console.log(data));