javascript – 在Nodejs中返回Promise结果而不是Promise
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在Nodejs中返回Promise结果而不是Promise,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1344字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 在Nodejs中返回Promise结果而不是Promise](/upload/InfoBanner/zyjiaocheng/735/e37736201ade44b1a5d67f36a7cbd396.jpg)
背景
我正在努力学习承诺,我有一个我希望改进的承诺链.
问题
在学习如何链接承诺时,我不明白为什么有人宁愿回复承诺而不是回报它的价值.
以下示例使用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()实际上是异步的,是否有可能实现与我的第二个代码示例中的代码类似的代码?
>如果有可能,那会是个好主意吗?你会怎么做?
解决方法:
如果在调用该函数时该值立即可用(在事件循环的同一刻度上),则只能从某个函数返回一个值.请记住,返回是同步的.
如果它不可用,那么你只能返回一个承诺(或者你可以使用回调,但在这里你特别询问承诺).
有关更详细的解释,请参阅我之前写的一个问题的答案,询问如何从某个函数返回AJAX调用的结果.我解释了为什么你不能返回价值,但你可以回复一个承诺:
> jQuery: Return data after ajax call success
这是另一个相关的答案 – 由于某种原因它被推翻但我认为它解释了一个类似的问题,你问她:
> Return value in function from a promise block
内容总结
以上是互联网集市为您收集整理的javascript – 在Nodejs中返回Promise结果而不是Promise全部内容,希望文章能够帮你解决javascript – 在Nodejs中返回Promise结果而不是Promise所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。