【发布时间】:2020-01-08 07:19:25
【问题描述】:
我希望函数做这些事情,并成为一个异步函数:
- 使用 jQuery $.get 下载 json
- 使用json创建对象
- 返回对象
所以如果我打电话给
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()”中创建的“事物”
但是,结果是我在 $.get()
我是否误解了“解决”的概念?
还是 jQuery Ajax 的行为与标准 ES6 Promise 不同?因为我在其他部分用 Promise.resolve 写了一些东西,它起作用了
【问题讨论】:
标签: javascript jquery ajax ecmascript-6 promise