Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.04.2022, 09:12
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

отправить на сервер массив поэлементно
День добрый.
Собственно задача:
Есть массив, допустим ['Иванов','Петров','Сидоров'];
Надо его весь отправить на сервер fetch - ем поэлементно, дожидаясь ответа сервера по каждому элементу.
То-есть: Отправляем Иванова, ждем ответа, что с ним все сделали, и только тогда отправляем Петрова.

Чот я туплю, как fetch сам на себя зациклить
типа:
paramsArr.forEach(async function(params){
    let response = await fetch(uri, params).then((response)=>{if(response.res) .....  })
})

Последний раз редактировалось dpts, 15.04.2022 в 09:18.
Ответить с цитированием
  #2 (permalink)  
Старый 15.04.2022, 09:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,148

Сообщение от dpts
forEach
reduce
Ответить с цитированием
  #3 (permalink)  
Старый 15.04.2022, 09:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,148

dpts,
Возвращает промис, который резолвит результаты всех запросов
Ответить с цитированием
  #4 (permalink)  
Старый 15.04.2022, 10:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,148

dpts,
(async () => {
    for(let params of paramsArr) {
        let response = await fetch(uri, params).then((response)=>{if(response.res) {}  })

    }
})();
Ответить с цитированием
  #5 (permalink)  
Старый 15.04.2022, 10:26
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Пока ничего не понял, буду разбираться.
Ответить с цитированием
  #6 (permalink)  
Старый 15.04.2022, 10:43
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Сообщение от рони Посмотреть сообщение
dpts,
(async () => {
    for(let params of paramsArr) {
        let response = await fetch(uri, params).then((response)=>{if(response.res) {}  })

    }
})();
Теперь понятно. Работает. Спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 15.04.2022, 11:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,267

Предложу еще такой вариант поочередной отправки запросов...
const a = ['Иванов','Петров','Сидоров']
let act = start(a, myCb)()
act.next()

// Колбэк-функция для отслеживания запроса
function myCb(i) {
	console.log(i)
	act.next()
}

// Собственно замут для поочередной отправки запросов
function start(a, cb) {
	return function* send() {
		for (let i = 0; i < a.length; i++) {
			yield  myFetch(_ => cb(i))
		}
	}
}

// Эмуляция нативного fetch
function myFetch(cb) {
	new Promise((resolve) => {
		setTimeout(_ => {
			cb()
			resolve(true)
		}, 2000)
	})
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить картинку имеющийся в Base 64 на сервер? Katy93 Общие вопросы Javascript 9 20.04.2020 21:45
Отправить массив на сервер maternik Общие вопросы Javascript 3 22.03.2014 14:03
Как отправить multiple select на сервер Hapson AJAX и COMET 9 17.03.2014 00:45
Как передать массив данных на сервер DVVID Общие вопросы Javascript 7 08.04.2010 12:11
записать массив байт на сервер karabura AJAX и COMET 1 06.08.2009 05:21