Примечание
Эта проблема как-то происходит только с определенным API на стороне сервера. Поэтому это решает не ту проблему. Я не буду удалять его, поскольку у него есть ответы и комментарии.
Я пытаюсь выполнить несколько ajax-запросов, сделать некоторые вещи после того, как каждый будет сделан, и некоторые другие вещи после того, как все они будут выполнены, для этого я использую код ниже:
let
myarr = [],
myfunc = arg => myarr.push(arg);
$.when(
$.post(myparams).done(myfunc),
$.post(otherparams).done(myfunc),
$.post(yetanother).done(myfunc)
// it comes out with only one arg
).then(e => console.log(myarr));
Но когда дело доходит до выполнения блока then
, он обычно выполняет только done
первой операции, как я могу это исправить?
Извините, если это дубликат, но, честно говоря, я даже не знал, что искать: /
Комментарий
Я также пытался создать свои собственные отложенные объекты, в которых я выполнял бы ajax и разрешал их внутри блока done
, но это дало те же результаты.
Использование только done
или только then
, то же самое.