Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用promise .then return promise和包装上一个响应

使用promise .then return promise和包装上一个响应
EN

Stack Overflow用户
提问于 2021-09-01 10:08:18
回答 1查看 36关注 0票数 0

据我所知,promise.then返回了一个新的承诺。而是如何使用值返回此承诺。下面是我的示例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function sleep(input, timeout) {
  return new Promise(resolve => {
    setTimeout(resolve(input), timeout)});
}

async function main() {
  sleep(['a','b'],1000)
  .then(([first, second]) => {
    console.log(first)
    console.log(second);
    return [first+'t', second];
  });
}
main()
.then(res => {
  console.log(res);
})

日志输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a
b
undefined

期望的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a
b
['at', 'b']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 10:33:00

console.log(res)中,您希望在main()函数中打印sleep.then(...)返回的值。但是,该函数不会返回该值。实际上,它没有返回任何内容,所以resundefined

main()中,您应该返回sleep.then(...)。这样,res将是该promise返回的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function sleep(input, timeout) {
  return new Promise(resolve => {
    setTimeout(resolve(input), timeout)});
}

async function main() {
  return sleep(['a','b'],1000)
  .then(([first, second]) => {
    console.log(first)
    console.log(second);
    return [first+'t', second];
  });
}
main()
.then(res => {
  console.log(res);
})

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

https://stackoverflow.com/questions/69018709

复制
相关文章
JavaScript中的 "return await promise" 与 "return promise"
当从异步功能中返回时,您可以等待该承诺得到解决,或者您可以直接返回它:return await promise return promise:
OwenZhang
2021/12/08
2.1K0
'return await promise' 与 'return promise' 这细微的区别
当从一个异步函数的promise返回时,我们可以使用return await promise等待 promise 解析完,也可以直接返回它 return promise。
前端小智@大迁世界
2022/05/31
1K0
理解和使用Promise.all和Promise.race
Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
biaoblog.cn 个人博客
2022/08/11
4050
如何使用Promise.race() 和 Promise.any() ?
自1996年发布以来,JS 一直在稳步改进。随着ECMAScript版本的许多改进,最近的版本是ES2020。JS 的一个重要更新是Promise,在2015年,它以 ES6 的名义发布。
前端小智@大迁世界
2022/03/22
7120
如何使用Promise.race() 和 Promise.any() ?
双12阿里服务器27块,通用点击这里购买可以找我返现30,等于27块就能买到了,只限新用户,可以用家人的手机号购买!
前端小智@大迁世界
2020/12/17
2.4K0
promise.all和promise.race
Promise.all可以将多个实例组装成一个新的实例,成功的时候返回一个成功数组,失败的时候则返回最先被reject失败状态的值
用户9914333
2022/12/14
5100
promise.all和promise.race
手写promise.all和 promise.race
学习链接:https://www.jianshu.com/p/7e60fc1be1b2
蓓蕾心晴
2022/08/18
4040
JavaScript手写Promise、Promise.then()、Promise.all()、Promise.race()
then方法返回一个新的Promise实例,为了在Promise状态发生变化时再执行then里的函数,我们使用一个callbacks数组先把传给then的函数暂存起来,等状态改变时再调用
henu_Newxc03
2022/05/05
9870
async/await 和 promise
所以我写这个的文章,主要还是交流学习,如果您已经清楚了eventloop/async/await/promise 这些东西呢,可以 break 啦。
grain先森
2019/03/28
7000
async/await 和 promise
Promise基本使用
Promise 是 ES6 中新增的一个对象,通过 Promise 就可以实现,用 同步 的流程来表示异步的操作,通过 Promise 就可以避免回调函数层层嵌套(回调地狱)的问题。
程序员 NEO
2023/09/28
1350
Promise基本使用
回调、使用Promise封装ajax()、Promise入门
Callback 很常见 $button.on('click', function(){}) click后面的 function 就是一个回调,因为「我」没有调用过这个函数,是 jQuery 在用户点击 button 时调用的(当用户点击之后,这个函数才执行,现在我只是传了一个参数,这个参数是一个点击后要执行的函数)。
代码之风
2018/10/31
3.4K0
Promise基础使用
promise可以对一个多promise数组进行调用,里面有all方法,当全都返回resolve才resolve。 当promise多重嵌套的时候,即p.then().then().then()嵌套下去,某个then里面的reject可以不一定在下一个then里面处理,在最后一个then里面处理即可。 如果像上面的promise嵌套想要中止,在想中止的then里面return new Promise(() => {})即可。
Sarlren
2022/10/28
4050
JavaScript promise使用
promise介绍 使用: function getMessageData() { var queryUrl = "http://1.1.1.1:1"; var param = {}; return new Promise((resolve, reject)=>{ request.post(queryUrl, JSON.stringify(param), function(result){ if(result.Result == 0 && result.Data.length
鱼找水需要时间
2023/02/16
4910
简单说下Promise.all和Promise.race区别和使用场景
Promise.all() 方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输入,并且只返回一个Promise实例。
青年码农
2021/05/18
1.8K0
简单说下Promise.all和Promise.race区别和使用场景
Promise: 异步编程的理解和使用
Promise 最早出现在 1988 年,由 Barbara Liskov、Liuba Shrira 首创(论文:Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems)。并且在语言 MultiLisp 和 Concurrent Prolog 中已经有了类似的实现。
除除
2022/05/28
1.9K5
Promise
promise就是一个对象,用来传递异步操作的消息,它代表未来才会知道的结果。 它有两个特点 (1)对象状态不受外界影响。3种状态(进行中pending,已完成resolved,已失败rejected) (2)一旦状态改变就不会再变。状态改变只有两种可能(pending->resolved,pending->rejected) 缺点 (1)无法取消 (2)不设置回调函数,内部错误不会反应到外部 (3)处于pending状态无法得知进展到哪里 使用例子 //一般不这
提莫队长
2018/05/18
1K0
使用 Swift 实现 Promise
我最近在找如何使用 Swift 实现 Promise 的资料,因为没找到好的文章,所以我想自己写一篇。通过本文,我们将实现自己的 Promise 类型,以便明了其背后的逻辑。
Swift社区
2021/11/26
1.3K0
Promise是什么?Promise怎么使用?回调地狱[通俗易懂]
Promise是ES6提供的原生的类(构造函数), 用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作)
全栈程序员站长
2022/09/05
5310
Promise
Promise.png Promise Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大 对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败) 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected 基本用法 ES6
李才哥
2021/02/23
7060
Promise
点击加载更多

相似问题

正在使用Promise return写入文件[object Promise]

260

如何使用promise return TypeError - javascript

33

Promise包装模式

10

Return JavaScript Promise rejected fulfilled

12

异步函数解析promise return

122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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