Фон
Я пытаюсь изучить promises, и у меня есть цепочка обещаний, которую я хочу улучшить.
Проблема
Изучая цепочку promises, я не понимаю, почему кто-то скорее вернет обещание вместо того, чтобы вернуть его значение.
Возьмем следующий пример, в котором используется цепочка суждений:
let myObj = new MyClass();
myObj.getInfo()
.then(result => writeOutput(FILE_NAME, result))
.then(console.log(FILE_NAME + " complete"))
.catch(error => console.error(error));
class MyClass{
getInfo() {
return new Promise(function(fulfil, reject) {
fulfill("I like bananas");
});
}
Здесь мне нужно цепью 2 раза. Но если бы я должен был прямо вернуть результат из метода getInfo()
вместо того, чтобы возвращать Promise, я мог бы сделать что-то вроде следующего:
let myObj = new MyClass();
let str = myObj.getInfo();
writeOutput(FILE_NAME, str)
.then(console.log(FILE_NAME + " complete"))
.catch(error => console.error(error));
Вопросы
Итак, как вы можете видеть, я немного смущен.
- Учитывая, что
getInfo()
на самом деле async, возможно ли получить аналогичный код с кодом в моем втором примере кода? - Если бы это было возможно, было бы хорошей идеей? Как вы это сделаете?