Где я ошибаюсь с этой функцией
<pre lang="Javascript"> var promises = []; for (var i = 0; i < 10; i++) { promises.push($.ajax(...)); } $.when.apply($, promises).then(function() { // returned data is in arguments[0][0], arguments[1][0], ... arguments[9][0] }, function() { // error occurred }); var sum= 0; for (var i= 0; i< array.length;i++) { sum= sum + (i+1) * Array[i]; }
Что я уже пробовал:
var promises = []; for (var i = 0; i < 10; i++) { promises.push($.ajax(...)); } $.when.apply($, promises).then(function() { // returned data is in arguments[0][0], arguments[1][0], ... arguments[9][0] }, function() { // error occurred }); var sum= 0; for (var i= 0; i< array.length;i++) { sum= sum + (i+1) * Array[i]; }
Richard Deeming
1) "Напишите функцию"
- Ваш код не является функцией
2) "это требует любого количества асинхронных функций"
- Это означает, что вам нужно передать обещания в качестве аргументов вашей функции, а не создавать их встраиваемыми.
3) "и вычисляет числовую сумму результатов этих функций"
- Вы не можете получить доступ к результатам, пока обещания не будут выполнены. Это означает, что внутри then
обратный звонок.
- NB: Код после $.when
блок работает до обещания выполнены.
4) sum= sum + (i+1) * Array[i];
- Вы еще не объявили об этом. Array
переменная.
- Ты не рассчитываешь сумму результатов.
Member 12737957
У меня есть проблемы с пониманием асинхронных функций, обещаний и обратных вызовов, вот в чем суть... я прочитал несколько статей, но не совсем понял их
Richard Deeming
Это большая тема, и, к сожалению, форум "быстрые ответы" на самом деле не то место, чтобы учить вас этому.
Это выглядит как довольно простое введение в обратные вызовы: Обратные Вызовы JavaScript Объяснены С Помощью Миньонов[^]
Это кажется довольно хорошим введением в обещания: Обещания JavaScript: введение[^]
Это, вероятно, самое подробное объяснение обещаний, которое я видел: Обещания JavaScript ... В Зловещих Деталях[^]