找到红宝书 JavaScript高级程序设计第四版的一个错误

在这里插入图片描述

错误在第十一章的第一节,这是中文版,写的是1000毫秒。
在这里插入图片描述
英文版同样有这个错误:

在这里插入图片描述
错误在于他说大约只花1000ms,其实大约花2000ms。

原代码

function double(value, success, failure) {
    setTimeout(() => {
        try {
            if (typeof value !== 'number') {
                throw `Must provide number`;
            }
            
            success(2 * value);
        } catch (e) {
            failure(e);
        }
    }, 1000);

}
const successCallback = (x) => {

    double(x, (y) => console.log(`Success:${y}`));
};
const failureCallback = (e) => console.log(`Failure:${e}`);
double(3, successCallback, failureCallback);

为了检验它确实花了2000ms,我需要给这个异步函数添加计时。首先在开头加了一个console.time('用时');用来记录开始时间,接着在第二次进入try后(console.endTime('用时'))结束计时。

console.time("用时");
let i=1;
function double(value, success, failure) {
    setTimeout(() => {
        try {
            if (typeof value !== 'number') {
                throw `Must provide number`;
            }
            if(i>1){
                console.timeEnd("用时");
            }
            success(2 * value);
            i++;
        } catch (e) {
            failure(e);
        }
    }, 1000);

}
const successCallback = (x) => {

    double(x, (y) => console.log(`Success:${y}`));
};
const failureCallback = (e) => console.log(`Failure:${e}`);
double(3, successCallback, failureCallback);

最后,贴上运行结果的截图。大约花了2000ms。
在这里插入图片描述

这本书有错误其实在所难免,毕竟1000多页这么厚。

但我不能忍的是无论是原作还是翻译,都把文字写的晦涩难懂,举个例子:“同时也就不可能在没有声明的情况下声明它”,这句话我至今也没有搞懂意思!!
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值