为了账号安全,请及时绑定邮箱和手机立即绑定

最近看别人的promise源码时,有些代码看的不是特别清楚,希望大牛可以帮下忙。

最近看别人的promise源码时,有些代码看的不是特别清楚,希望大牛可以帮下忙。

皈依舞 2019-03-12 13:15:10
var ret = typeof onFulfilled === 'function' && onFulfilled(value) || value;这段代码换ret是怎样的一种赋值方式??希望可以说清楚一下,谢谢哈~
查看完整描述

5 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

function getRet(value) {

    if(typeof onFulfilled === 'function') {

        var fulfilledValue = onFulfilled(value)

        if(fulfilledValue) {

            return fulfilledValue

        } else {

            return value

        }

    } else {

        return value

    }

}

var ret = getRet(value)


查看完整回答
反对 回复 2019-04-06
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

是要问这段代码什么意思吗?
假设把 typeof onFulfilled === 'function' 看成 true,那么表达式变成:
var ret = true && onFulfilled(value) || value
接下来就是一个“与或”的运算,自行 google

查看完整回答
反对 回复 2019-04-06
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

js 中 && 前面的值为true(==true)才会继续向后执行, || 前面值为false(==false)才会继续向后执行,具体自己理解吧


查看完整回答
反对 回复 2019-04-06
?
大话西游666

TA贡献1817条经验 获得超14个赞

如果onFulfilled的数据类型为function,就执行onFulfilled,参数为value,将函数返回的结果赋值给ret,否则将value赋值给ret


查看完整回答
反对 回复 2019-04-06
  • 5 回答
  • 0 关注
  • 541 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号