Я работаю над проектом Ionic 3, это значит, что я использую Angular 5, ES6, TypeScript.
Я пытаюсь написать рекурсивную функцию, которая возвращает обещание, но я получаюошибка выполнения:
На самом деле, я пытаюсь сделать функцию, которая ожидает, пока условие не будет проверено, или пока не истечет время ожидания 5 с, что-то вроде этого ждет, пока (myCondition | timeout) затем вернет решенное значение илиотклоненное обещание.
Функция проверяет каждые 100 мсек, если условие проверено, она возвращает разрешенное обещание, иначе она делает рекурсивное обращение до 50-го вызова, поэтому возвращает отклоненное обещание:
код:
waitForTrack(flag,callNumber){
if(callNumber < 50){
if (this._audioProvider.tracks.length == flag)
setTimeout(()=>{
return this.waitForTrack(flag,callNumber++)},100)
else
return new Promise((resolve,reject) =>{
resolve();
});
}else{
return new Promise((resolve,reject) =>{
reject();
});
}
}
Ошибка:
core.js:1449 ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'then' of undefined
TypeError: Cannot read property 'then' of undefined