关于 new Promise

关于 new Promise

getContentByLocalStorage(contentAllData) {
    this.content = contentAllData.data;
    return Promise.resolve();
},

getContentByHTTP(id) {
return  getCategoryContent(id).then(data => {
return new Promise(resolve => {
    if(data) {
    this.content = data;
    resolve();
}
});
});
},

请问老师:

Promise 和 new Promise 差别在哪里 ?为什么我在 return new Promise.resolve();,就会直接报错?

请老师解惑,谢谢您。


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好同学,首先要表扬一下,最近的进步很大。能够自己在遇到问题时,自己先去复习或者查资料解决,是非常有助于自身能力的一个提升的,希望同学继续保持!

另外,问题解答如下:

1.Promise.resolve()返回的是一个Promise实例对象,它不需要使用new。参考如下理解:

http://img1.sycdn.imooc.com//climg/5d6519240001154b04040080.jpg

所以同学问题描述中的return new Promise.resolve();, 又给它加了一个new就不对了哦

2. 其他理解的是对的。

祝学习愉快,望采纳。

  • 慕小庄 提问者 #1
    灰灰老师您好:Promise.resolve()返回的是一个Promise实例对象,new Promise()也是返回的是一个Promise实例对象,区别在 new Promise() 能同时判断 成功 与 失败 的结果,这样理解是对的吗?
    2019-08-28 13:50:47
  • 好帮手慕夭夭 回复 提问者 慕小庄 #2
    可以这样理解哦
    2019-08-28 16:20:24
  • 慕小庄 提问者 回复 好帮手慕夭夭 #3
    谢谢灰灰老师!
    2019-08-28 16:25:40
提问者 慕小庄 2019-08-27 15:41:44

老师,我复习了一下 Promise 异步函数,

new Promise() 是在使用在请求数据并用 resolve 和  reject 来获取成功和失败的数据,在范例中,因为 getContent 需要返回 promise 实例,所以在一下判断中,都需要返回 promise 实例

Promise.resolve() 是指判断了 成功之后要做的事。

请问老师,在范例中,我可以return Promise.resolve( contentAllData ); 吗?我目前测试是没问题的。


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师