Я столкнулся с проблемой при попытке получить данные из другого сценария. У меня есть angular проект с вложенным сценарием, в котором сценарий выполняется по требованиям определенных вызовов.
сценарий. js
makeCall(recordId, reason, prefix){
return new Promise(((resolve, reject) => {
var action = urlToCall + '?' + 'recordId='+ recordId + '&' + 'reason=' + reason + '&' + 'prefix=' + prefix;
this.sender.sendRequest({ajaxAction: 'POST', urlAction: action})
.then(response =>{
console.log(_timestamp(), " - Successful Request (makeCall) with response: ", response);
resolve({'msg':'success'});
}).catch(error =>{
console.error(_timestamp(), " - Request failed (makeCall) with error: ", error);
this.sender.sendErrorEvent(error.message, "makeCall");
});
}).bind(this));
}
}
Этот сценарий call return только 200 Ok или коды ошибок, поэтому он не возвращает никаких данных обратно, поэтому я принудительно решаю с помощью объекта {'msg': 'success'}.
Так что в сервисе где Я делаю вызов скрипту, который у меня есть:
service.ts
executeCall(id, reason, prefix): Observable<any> {
return from(this._connectionController.makeCall(id, reason, prefix));
}
А затем в компоненте я подписываюсь на этот сервис:
component.ts
this._service.executeCall(id, reason, prefix).subscribe((res: any) => {
console.log('Success');
}, (error) => {
console.log('ERROR', error);
});
Проблема заключается в том, что когда я выполняю вызов, он возвращает мне следующее:
ОШИБКА TypeError: Вы указали «undefined», где поток ожидалось. Вы можете предоставить Observable, Promise, Array или Iterable.
Есть идеи, как мне добиться успеха при подписке? Спасибо!