关于promise的问题

关于promise的问题

function f() {
    return new Promise(resolve => {
        setTimeout(function() {
            resolve();
        }, 1000);
    })
}
function f() {
    return new Promise(function (resolve){
            resolve();
    })
}

我把箭头函数改为下面的函数,并去掉定时器的写法对吗?

new Promise是一个实例对象,接收的是函数参数,然后执行匿名函数,当函数的参数是resolve时,执行resolve()方法。我理解的对吗?那么resolve()方法是js自带的吗,它是怎么来的?

正在回答 回答被采纳积分+1

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

2回答
好帮手慕码 2019-10-18 10:53:05

同学你好!

在参数传递了resolve的情况下,才能调用resolve方法哦~

如果帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕码 2019-10-17 12:04:23

同学你好!
1.改写是可以的,但是定时器的作用是默认1s之后获取数据。如果去掉定时器,就没有1s获取数据这个效果了,是一次都获取到的。

2.理解的是大致是可以的。Promise的构造函数接收一个参数,这个参数是一个函数,此函数可以传入两个参数:resolve,reject,分别表示异步操作执行成功后的回调函数和异步操作执行失败后的回调函数;

如果参数只有一个resolve的话,执行的是resolve方法,但是有时候参数是两个resolve,reject,主要看执行resolve方法,还是执行reject方法,就比如这种写法:

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

3.这两个方法是Promise自带的哦~

如果帮助到了你,欢迎采纳,祝学习愉快~

  • 那意思是说Promise是用构造函数的方式生成的对象了,它的实例化对象都能调用resolve()方法,对吗?
    2019-10-17 19:57:48
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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