开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
FeanLau的个人空间 - 开源中国社区
技能积分 0
活跃积分 0
粉丝 3
加入于 2017/02/25 最近登录:04/20 21:32
FeanLau 4个月前
更新了动态
箭头函数的完整代码,厉害了
function resolveAfter2Seconds(x) {
    return new Promise(resolve => {
      setTimeout(() => {
        resolve(x);
      }, 2000);
    });
  }
  
  async function f1() {
    var x = await resolveAfter2Seconds(10);
    console.log(x);
  }
  f1();
0 0 查看
FeanLau 4个月前
更新了动态
http://www.zhangxinxu.com/wordpress/2014/02/es6-javascript-promise-%E6%84%9F%E6%80%A7%E8%AE%A4%E7%9F%A5/ 《ES6 JavaScript Promise的感性认知》这篇日志写得是真好!
<!DOCTYPE html>
<!-- saved from url=(0053)http://www.zhangxinxu.com/study/201402/promise-2.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>男神求婚历程的Promise实现</title>
<script>
console.log = function(text) {
    document.getElementById("ol").insertAdjacentHTML("beforeEnd", '<li>' + text + '</li>');    
};
</script>
<style>
pre { position: absolute; width: 640px; border: 1px solid #ccc; background-color: #f5f5f5; padding: 1em; top: 5em; left: 350px; font-size: 14px; font-family:"Lucida Console", Monaco, monospace; }
</style>
</head>

<body>
<h1>男神求婚历程的Promise实现</h1>
<h3>左结果,右代码</h3>
<ol id="ol"><li>岳父攻略成功!</li><li>大伯攻略成功!</li><li>大姑攻略成功!</li><li>女神不同意,求婚失败!</li></ol>
<pre id="pre">// 男神的各项参数
var NanShen = {
    "身高": 180,
    "体重": 80,
    "年薪": "200K",
    request: function(obj) {
        // 成功与否随机决定
        // 执行成功的概率为80%
        if (Math.random() > 0.2) {
            obj.success();
        } else {
            obj.error();
        }
    }
};

var Request = function(name) {
    return new Promise(function(resolve, reject) {
        var failed = 0, request = function() {            
            NanShen.request({
                name: name,
                success: function() {
                    console.log(name + "攻略成功!");
                    failed = 0;
                    resolve();
                },
                error: function() {
                    if (failed == 0) {
                        console.log("第一次攻略" + name + "失败,重试一次!");
                        failed = 1;
                        // 重新攻略一次
                        request();                       
                    } else {
                        console.log("依然没有拿下" + name + ",求婚失败!");
                        reject();
                    }
                }
            });
        };
    
        request();
    });
};

Request("岳父")                                // 搞定岳父,然后...
.then(function() { return Request("大伯"); })  // 搞定大伯,然后...
.then(function() { return Request("大姑"); })  // 搞定大姑,然后...
.then(function() {                            // 长辈们全部KO后,攻略女神
    NanShen.request({
        name: "女神",
        success: function() {
            console.log("女神同意,求婚成功!");
        },
        error: function() {
            console.log("女神不同意,求婚失败!");
        }
    });
});

</pre>
<script id="script">// 男神的各项参数
var NanShen = {
    "身高": 180,
    "体重": 80,
    "年薪": "200K",
    request: function(obj) {
        // 成功与否随机决定
        // 执行成功的概率为80%
        if (Math.random() > 0.2) {
            obj.success();
        } else {
            obj.error();
        }
    }
};

var Request = function(name) {
    return new Promise(function(resolve, reject) {
        var failed = 0, request = function() {            
            NanShen.request({
                name: name,
                success: function() {
                    console.log(name + "攻略成功!");
                    failed = 0;
                    resolve();
                },
                error: function() {
                    if (failed == 0) {
                        console.log("第一次攻略" + name + "失败,重试一次!");
                        failed = 1;
                        // 重新攻略一次
                        request();                       
                    } else {
                        console.log("依然没有拿下" + name + ",求婚失败!");
                        reject();
                    }
                }
            });
        };
    
        request();
    });
};

Request("岳父")                                // 搞定岳父,然后...
.then(function() { return Request("大伯"); })  // 搞定大伯,然后...
.then(function() { return Request("大姑"); })  // 搞定大姑,然后...
.then(function() {                            // 长辈们全部KO后,攻略女神
    NanShen.request({
        name: "女神",
        success: function() {
            console.log("女神同意,求婚成功!");
        },
        error: function() {
            console.log("女神不同意,求婚失败!");
        }
    });
});

</script>
<script>
document.getElementById("pre").innerHTML = document.getElementById("script").innerHTML;
</script>


</body></html>
2 0 查看
FeanLau 4个月前
上面的方法是有效果的
@FeanLau
假设你有3个commit如下: commit 3 commit 2 commit 1 其中最后一次提交commit 3是错误的,那么可以执行: git reset --hard HEAD~1 你会发现,HEAD is now at commit 2。 然后再使用git push --force将本次变更强...
FeanLau 4个月前
我想再补充一点:假如你只是想修改上次提交的代码,做一次更完美的commit,可以这样 (1)git reset commitId,(注:不要带--hard)到上个版本 (2)git stash,暂存修改 (3)git push --force, 强制push,远程的最...
@FeanLau
假设你有3个commit如下: commit 3 commit 2 commit 1 其中最后一次提交commit 3是错误的,那么可以执行: git reset --hard HEAD~1 你会发现,HEAD is now at commit 2。 然后再使用git push --force将本次变更强...
FeanLau 4个月前
假设你有3个commit如下: commit 3 commit 2 commit 1 其中最后一次提交commit 3是错误的,那么可以执行: git reset --hard HEAD~1 你会发现,HEAD is now at commit 2。 然后再使用git push --force将本次变更强...
2 查看
FeanLau 4个月前
在博客: Git基础-打标签 发表评论:
具体详细的还是去看系列化的文档比较好
@FeanLau
Git的打标签内容是比较多的,目前只学习到自己够用即可。 打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节我们一起来学习...
FeanLau 4个月前
     举例来自:https://github.com/vnpy/vnpy(作者为了这个项目,讲解得真是细致)      vn.py使用github托管其源代码,如果希望贡献代码请使用github的PR(Pull Request)的流程: 创建 Issue - 对于较大的...
0 查看
FeanLau 4个月前
发表了博客 Syncing a fork
Sync a fork of a repository to keep it up-to-date with the upstream repository. Before you can sync your fork with an upstream repository, you must configure a remote that points to the upstream ...
0 查看
FeanLau 4个月前
更新了动态
这里很明显看到异步的代码非常高的提高了程序执行的效率。
<html>
<head>

</head>
<body>
    <script>

        // 125ms左右的时间
        function calculateTest(){
            console.time("Array initialize");
            function foo(){
                // 一千万次空操作,延时
                for(var i=0; i< 100000000; i++){ }
            }
            foo();
            console.timeEnd("Array initialize"); 
        }

        function calculate(){
            function foo(){
                // 一千万次空操作,延时
                for(var i=0; i< 100000000; i++){ }
            }
            foo();
        }

        // 异步计算
        function asyncCal(){

            console.time("Array initialize");

            calculate();

            setTimeout(function() {
                calculate();                
            }, 1);

            calculate();   

            console.timeEnd("Array initialize"); 

        }

        // 同步计算
        function syncCal(){

            console.time("Array initialize");

            calculate();

            calculate();                

            calculate();   

            console.timeEnd("Array initialize"); 

        }
        
    </script>
</body>
</html>
0 0 查看
FeanLau 4个月前
更新了动态
这个时间截图结果
loading...
0 0 查看
顶部
×
动弹一下 还可以输入5
单图/多图
网络图片
上传图片
9 张,还能上传 9
  • +
发布
×
设置备注名:
保存
用户尚未登录,点击这里登录