Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Nodejs中的返回承诺结果而不是承诺

Nodejs中的返回承诺结果而不是承诺
EN

Stack Overflow用户
提问于 2017-01-18 04:07:54
回答 4查看 5.3K关注 0票数 3

背景

我正在努力学习承诺,我有一个承诺链,我想改进。

问题

在学习如何连锁承诺的同时,我不明白为什么有人宁愿回报承诺,而不愿回报承诺的价值。

以下面的示例为例,它使用了诺言链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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");
        });
}

在这里我要链两次。但是,如果我要直接返回getInfo()方法的结果,而不是返回一个承诺,那么我可能会执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let myObj = new MyClass();

let str = myObj.getInfo();

writeOutput(FILE_NAME, str)
    .then(console.log(FILE_NAME + " complete"))
    .catch(error => console.error(error));

问题

所以正如你所看到的,我有点困惑。

  1. 考虑到getInfo()实际上是异步的,是否有可能实现与我的第二个代码示例中的代码类似的代码?
  2. 如果有可能,会不会是个好主意?你会怎么做?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-01-18 04:22:13

只有在调用该函数时该值立即可用时,才能从某个函数返回一个值(在事件循环的相同勾号上)。请记住,return是同步的。

如果它现在不可用,那么您只能返回一个承诺(或者您可以使用回调,但这里您专门询问承诺)。

有关更详细的解释,请参阅我不久前为一个问题编写的答案,该问题询问如何从某个函数返回AJAX调用的结果。我解释了为什么不能返回值,但可以返回承诺:

这是另一个相关的答案--它因某些原因被否决了,但我认为它解释了你问她的一个类似的问题:

票数 2
EN

Stack Overflow用户

发布于 2017-01-18 04:22:48

我不明白为什么有人宁愿回报承诺,而不愿回报它的价值。

因为你还没有这个价值。

考虑到getInfo()实际上是异步的,是否有可能实现与我的第二个代码示例中的代码类似的代码?

如果它是异步的,它必须返回一个承诺。

避免then调用(但仍然使用并产生承诺)的语法由await实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
async function writeInfo(FILE_NAME) {
    const myObj = new MyClass();
    try {
        const str = await myObj.getInfo();
        await writeOutput(FILE_NAME, str);
        console.log(FILE_NAME + " complete");
    } catch (error) {
        console.error(error);
    }
}
writeInfo("…");
票数 2
EN

Stack Overflow用户

发布于 2017-01-18 04:23:18

一个承诺的目的是说:“数据会在某个时候出现,现在继续你的编码”,这样你的页面就不会卡住了。基本上,您是使用承诺,例如,从服务器加载一些东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41719024

复制
相关文章
php中删除html标签和标签内内容的方法
不少人去扒别人家的网站文章,我是指那种批量式采集的压根不看内容的,少不了都会用到删除 html 标签的函数,这里介绍 3 种不同用途上的方法 $str='<div><p>这里是 p 标签</p><img src="" alt="这里是 img 标签"><a href="">这里是 a 标签</a><br></div>'; 1:删除全部或者保留指定 html 标签 php 自带的函数 strip_tags 即可满足要求, 使用方法:strip_tags(string,allow); string:需要处
沈唁
2018/05/24
5.4K0
如何使用JavaScript从字符串中删除HTML标签?
我们可以使用以下示例从带有 JavaScript 的字符串中删除 HTML 标签 -
很酷的站长
2022/12/04
13K0
如何使用JavaScript从字符串中删除HTML标签?
【HTML】HTML 标签 ③ ( 文本格式化标签 | 加粗 | 斜体 | 下划线 | 删除线 | 标签属性 | 图像标签 | 图像标签属性 )
在网页中插入图片 , 使用 <img> 标签 , 该标签是单标签 , 插入语法如下 :
韩曙亮
2023/03/30
3.1K0
【HTML】HTML 标签 ③ ( 文本格式化标签 | 加粗 | 斜体 | 下划线 | 删除线 | 标签属性 | 图像标签 | 图像标签属性 )
Linux 删除文本中的重复行
这里我做了个简单的测试,当file中的重复行不再一起的时候,uniq将服务删除所有的重复行。经过排序后,所有相同的行都在相邻,因此unqi可以正常删除重复行。
阳光岛主
2019/02/19
8.7K0
从DataFrame中删除列
在操作数据的时候,DataFrame对象中删除一个或多个列是常见的操作,并且实现方法较多,然而这中间有很多细节值得关注。
老齐
2021/03/29
7.1K0
Flutter文本标签TextTagWidget,搜索记录流式布局显示文本标签
题记 —— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。 重要消息 网易云【玩转大前端】配套课程 EDU配套 教程 Flutter开发的点滴积累系列文章 *** 1 添加依赖 flutter_tag_layout: ^0.0.3 github源码在这里 pub.flutter-io.cn最新版在这里 2 导包 在使用到文本标签的地方 import 'package:flutter_tag_layout/flutter_tag_layout.dart'; 3 标签创建文本 c
早起的年轻人
2020/06/26
1.1K0
从lvm中删除硬盘、分区
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/article/remove_disk_from_lvm/
羽翰尘
2019/11/20
6.9K0
LyScript 从文本中读写ShellCode
LyScript 插件通过配合内存读写,可实现对特定位置的ShellCode代码的导出,或者将一段存储在文本中的ShellCode代码插入到程序堆中,此功能可用于快速将自己编写的ShellCode注入到目标进程中,以用于后续测试工作。
微软技术分享
2022/12/22
5630
LyScript 从文本中读写ShellCode
LyScript 从文本中读写ShellCode
LyScript 插件通过配合内存读写,可实现对特定位置的ShellCode代码的导出,或者将一段存储在文本中的ShellCode代码插入到程序堆中,此功能可用于快速将自己编写的ShellCode注入到目标进程中,以用于后续测试工作。
微软技术分享
2022/12/28
6130
LyScript 从文本中读写ShellCode
HTML的body标签-文本标签学习
<html> <head> <title>HTML的body标签-文本标签学习</title> <meta charset="utf-8"/> </head> <body> <!--标题标签--> <h1 align="center">今天北京天气真好,适合学习</h1> <h2>今天上海天气真好,适合学习</h2> <h3>今天成都天气真好,适合学习</h3> <h4>今天遂宁天气真好,适合学习</h4> <h5>今天郫县天气真好,适合学习</h5> <h6>今天
葆宁
2019/04/18
2.1K0
标签之美二——文本标签 原
定义字体大小:size  例如<font size="4"></font>设置其中文字字号为4。
珲少
2018/08/15
5400
标签之美二——文本标签
                                                                            原
【技术】从文本挖掘和机器学习中洞悉数据
文本挖掘分析的是包含在自然语言文本中的数据。它可以帮助企业从文本型数据中获得具有潜在价值的商业洞察力,比如Word文档、邮件或Facebook、Twitter、LinkedIn等社交媒体上的帖子。对于
小莹莹
2018/04/24
8690
【技术】从文本挖掘和机器学习中洞悉数据
HTML中的单标签和双标签
#HTML标签 刚开始学HTML发现有很多标签是只有一个<>的,比如这种。 然而也有很多是由<><>两对尖括号组成的,下面就来总结一下吧!
德勒
2021/04/15
2.8K0
【译】从文本挖掘和机器学习中洞悉数据
版权申明 作者:Murat Yazici 原文链接:http://www.ibmbigdatahub.com/b ... rning 翻译:星星 PPV课原创翻译文章,如需转载请微信留言获得授权,不得未经授权转载! 文本挖掘分析的是包含在自然语言文本中的数据。它可以帮助企业从文本型数据中获得具有潜在价值的商业洞察力,比如Word文档、邮件或Facebook、Twitter、LinkedIn等社交媒体上的帖子。对于在信息检索和自然语言处理等方面应用机器学习技术这
小莹莹
2018/04/23
7330
【译】从文本挖掘和机器学习中洞悉数据
游戏文本关键词提取工作的尝试和探索
如何将合适的游戏文本打上正确的关键词标签,并将内容推送给恰当的用户成为一个重要的课题。
腾讯知文实验室
2018/02/08
3K0
游戏文本关键词提取工作的尝试和探索
如何从文本中构建用户画像
一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。
abs_zero
2018/04/11
4.9K0
如何从文本中构建用户画像
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.4K0
如何从组中删除Linux用户?
在Linux中,用户可以是一个主要组和一个或几个次要(辅助)组的成员。文件“ / etc / group”为Linux系统中的每个用户定义了组成员身份。
用户6543014
2020/04/07
19.6K0
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2700
Python - 从字典列表中删除字典
点击加载更多

相似问题

没有UiSlider删除十进制?

45

UISlider值和对中文本的标签

12

从标签XCode中查找和删除特定文本

23

尝试从GWT标签中获取内部文本

12

使用BeautifulSoup从文本中删除标签

289
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文