【发布时间】:2018-08-05 07:51:07
【问题描述】:
异步函数中的这段代码,没有给出预期的结果:
var result = await $.when( $.get('/api/1'), $.get('/api/2') );
通过一个请求,结果将是我期望的输出(响应文本)。
但是,对于这两个请求,返回的 result 是一个不包含两个 Promises 值的数组。有什么解决办法吗?
我知道有then() 和done(),但我更喜欢使用await。
【问题讨论】:
-
您确定您在控制台中没有收到任何错误吗? jQuery when 返回一个 jQuery 延迟对象(不是 JavaScript 承诺)......
-
没有警告。我得到一个包含 3 个项目的数组。但只有一个 responseText。
-
你得到两个包含 3 项的数组,每个数组中的第一项是响应文本。
-
嗯,我只得到一个数组。 result[0] = 响应字符串,result[1] = "成功",result[2] = jqXHR
-
啊,是的。好吧。使用
.done()。$.when()和await不兼容。或者改用await Promise.all( [$.get('/api/1'), $.get('/api/2')] )。
标签: jquery ajax promise async-await .when