Я не уверен, как реализовать обещания в моем магазине mobx. У меня есть два действия, которые я хотел бы выполнить последовательно в цикле и не забудьте дождаться завершения первого, прежде чем запускать второй. Вот пример моего кода магазина. Пожалуйста, запросите дополнительные разъяснения, и я обязательно добавлю их. Я попытался упростить код до того, что, по моему мнению, было необходимо для поиска решения. Благодаря!Обещания в магазине mobx
import { observable, action } from 'mobx';
import Store from '../support/store';
class Upload extends Store {
@observable fileList = null; // array of files to be uploaded
@observable processedFile = null; // single file pre-processed for upload
@action processFile(file) {
// takes file from fileList array, 'processes' it and
// places the result in this.processedFile
}
@action post() {
// makes a POST request, uploading this.processedFile
// sets this.processedFile = null
}
@action postFileList() {
// loops over the array this.fileList
// runs this.processFile(file)
// waits until processFile(file) is finished
// runs post()
// waits until post() is finished
// removes file from the this.fileList array
}
}
является 'processFile' асинхронный или просто' Post'? – Tholle
@Tholle 'processFile' также является асинхронным. – wuliwong
сделать функцию postFileList 'async' и написать код точно так, как вы писали ранее. Красота mobx заключается в том, что для этого вам не нужен специальный специальный код. –