4
关注
1961
浏览

Promise.all从API的拒绝

为什么被折叠? 0 个回复被折叠
開心生活 未验证用户 用户来自于: 广东省
2020-09-15 17:21

我认为这个问题是来自你抓住的API函数的错误和catch method return a new promise(满足你有效地返回一个值)

,所以如果你不抓住错误的事实,你的问题应该是固定的因为错误将被转发

return a.test(data).then(rd => { 
    // do some stuffs ... 

    return rd; 
}) 
// no catch 
李华锋 未验证用户 用户来自于: 广东省
2020-09-16 20:59

你可能有一个错字。 正如你写的,你尝试Promise.all()一个整数数组,这将全部解决。

您应该返回return await Promise.all(request)而不是return await Promise.all(data),因为否则不会有任何被拒绝的承诺。

tinyhill 未验证用户 用户来自于: 广东省
2020-09-17 00:48
你只能抓一个承诺一次,你在catch返回的内容是怎样的未来then将解决或拒绝: Promise.reject(88) .catch(err=>"Hello World") .then(resolve=>console.log("resolve is:",resolve)) Promise.reject(88) .catch(err=>Promise.reject("Hello World"))//reject again .catch(err=>console.log("reject is:",err)) 相反的: return await a.test(data).then(rd => { return rd }) .catch(ed => { return ed });` 你可以这样做:return a.test(data) 提供没有任何意义的其他代码。如果您想提出一些请求,但希望获得所有结果,即使其中一些失败,您也可以查看this answer(最后一个代码块)。 这一回答解释了一下为什么创建的承诺,我会建议你,直到你明白什么是承诺,以及如何使用不使用异步语法them.`

关于作者

y 未验证用户

这家伙很懒,还没有设置简介

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:04
关注人数
4 人关注

相关问题

个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号