【发布时间】:2017-06-02 19:23:50
【问题描述】:
背景
我正在尝试学习 Promise,并且我有一个想要改进的 Promise 链。
问题
在学习如何链接 Promise 时,我不明白为什么有人宁愿返回 Promise 而不是返回它的值。
以下面的例子为例,它使用了 Promise 链:
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()实际上是异步的,是否可以实现与我的第二个代码示例中的代码类似的代码? - 如果可能的话,这是个好主意吗?你会怎么做?
【问题讨论】:
标签: javascript node.js promise