У меня есть обещание, которое возвращается, когда правильное событие вызывается с правильным действием.Это то, что у меня есть до сих пор
import {EventBus} from "./EventBus";
export function completed() {
EventBus.$on('queue-action', e => {
return new Promise((resolve,reject) => {
if(e.action == 'completed'){
let item = e.queueItem
resolve(item);
}else{
reject(new Error('No action specified in event object'))
}
})
});
}
export function emitAction(action, queueItem) {
EventBus.$emit('queue-action', {
action,
queueItem
});
}
При вызове завершенной функции в одном из моих компонентов, подобных этому
completed()
.then((item)=> console.log('promise'))
.catch((error) => console.log(error) );
, он возвращает неопределенное значение, как только я добавляю методы then и catch к этомуфункция.Похоже, проблема со мной тогда и ловит, но я не могу определить что это.Из того, что я видел в Интернете, какую бы переменную вы не использовали для данных, которые вы используете в операторе then.
То, что я пытаюсь сделать, - это позволить элементу в «очереди» отправить событие в очередь с завершенным действием, например.Затем очередь должна разрешить обещание отредактировать очередь в соответствии с назначением этого действия или отреагировать на ошибку из обещания.
Это то, что я сделал до сих пор
import {EventBus} from "./EventBus";
export class QueueEvent {
constructor(){}
emitAction(action, queueItem){
return new Promise((resolve,reject) => {
EventBus.$emit('queue-action', {
action,
queueItem
},resolve,reject);
});
}
}
export class QueueEvents extends QueueEvent{
constructor(){
super();
}
listenForComplete() {
}
}