Ada kolom data dalam tabel yang perlu diperbarui melalui permintaan ajax, dan berapa banyak permintaan ajax yang harus dikeluarkan sebanyak baris, jika diteruskan ke efek:
for (let i = 0; i < content.length; i++) {
const status = yield call(service.status, id)
content[i].status = status
yield put({type: 'updateState', payload: {content: content,}})
}
Untuk memperbarui dengan cara ini, permintaan akan menyelesaikan satu permintaan dan meminta yang berikutnya, dan efisiensinya tidak terlalu tinggi. Diharapkan ajax ini dapat dikeluarkan secara bersamaan, yaitu, tanpa jeda melalui hasil, dan pada saat yang sama memperbarui status tepat waktu (keadaan diperbarui setelah permintaan berhasil). Saya ingin tahu dewa mana yang dapat memberikan beberapa petunjuk?
Tabel menggunakan ant.design.
Pertanyaan yang sama
1. Hasil tidak ada hubungannya dengan konkurensi, kan? Permintaan ini harus bersamaan (tidak yakin)
2. Mengapa tidak menggabungkannya menjadi satu permintaan?
const results = yield [fun1(), fun2(), fun3()];
atau
function * fun(id) {}
const results = yield ids.map(fun);
const [demands, orders, mediaorders] = yield [
call(fetch, {
resource: 'stat/demands',
}),
call(fetch, {
resource: 'stat/orders',
}),
call(fetch, {
resource: 'stat/mediaorders',
})
]
ambil dapat mengembalikan Promise.all
@helloyou2012 Tetapi cara penulisan ini bersamaan, tetapi Anda harus menunggu sampai semua permintaan selesai untuk mendapatkan hasilnya.Jika salah satu permintaan habis, semua data tidak akan tersedia.
*fetch(action, { call, all }) {
const [demands, orders, mediaorders] = yield all([
call(fetch, {
resource: 'stat/demands',
}),
call(fetch, {
resource: 'stat/orders',
}),
call(fetch, {
resource: 'stat/mediaorders',
})
])
}
*fetch(action, { callWithLoading, put, race }) {
const [demands, orders, mediaorders] = yield race (...)
Redux-saga dapat melihat dokumentasi saga
Jika Anda menggunakan semua untuk konkurensi, jika permintaan hang, itu akan menimbulkan kesalahan, dan semua data tidak akan tersedia Bagaimana jika Anda ingin melakukan pemrosesan lanjutan pada permintaan yang benar?
Komentar yang paling membantu