kmxz

kmxz 查看完整档案

北京编辑香港科技大學  |  機械工程 编辑  |  填写所在公司/组织 kmxz.net/ 编辑
编辑

你都看到这里了,还不赶快给我所有回答点赞?!

个人动态

kmxz 回答了问题 · 2017-10-30

让公司与家里实时共享一切文件?

第三方服务:OneDrive / Dropbox / Google Drive

或者自己搭 NAS / Samba

关注 6 回答 5

kmxz 关注了问题 · 2016-07-30

nodejs 有没有办法判断所有的异步都执行结束了?

因为程序太多的异步请求了。有时候超时什么的,虽然目前还能判断出来何时结束,但是有时候总有各种微小的概率判断不准确。也就是单靠计数无法准确的统计所有的异步都执行结束了。特别是程序业务非常复杂的时候。

如果判断不准确,我根本无法反馈给用户,程序已经执行完毕。然后用户一直干等。

所以,如果能直接判断页面所有的异步都已经结束那就很好了。有这个东西吗?

----------补充--------------

我目前是使用async/waterfall实现的,代码如下

function test(i){
    
    
    waterfall([

        //步骤1
        function(callback) {
                
            thread(function (){
                //callback(null, 'a');
            }, 800);
            
        },
        
        //步骤2
        function(a, callback){
            
            dlog('执行到步骤2'+a);
            
        }
        
    
    ], function (err, a, b) {
        dlog('任务结束'+a+b);
         dlog(err);
    });

}

function thread(callBack, time){
    
     setTimeout(function(){
        callBack();
      },  time)
    
}

如上,正常情况下的流程: 步骤1--步骤2--任务结束

任务结束,计数+1,比如任务总数=10时,计数=10即可判断任务全部结束。

现在问题来了。假如步骤1的那个异步,发生了异常,没有回调。无法进行到下一步,自然也执行不到结束那个位置。
流程就这样中断了。

所以计数永远小于10.任务永远无法结束。

至于为什么发生没有回调的情况。读取网页,下载图片等一系列的操作,之前没有设置超时时间,读取的异步好像永远都不回调,现在设置超时时间才没有这个问题。

因为使用的是第三方的模块,这类问题依然会有概率发生,至于为什么,估计得研究人家的源码才能找到答案了。

关注 5 回答 4

kmxz 关注了问题 · 2016-07-29

解决我写图片和input对齐的样式,改如何写呢?请参考下面图片。

clipboard.png

关注 3 回答 2

kmxz 赞了回答 · 2016-07-13

解决java如何实现对静态类的传值更改。

不能传值可以传handle或者方法回调啊,这样应该可以吧。


你不是说到使用构造函数吗?你构造函数不能传普通的值可以传对象引用,类似你给按钮添加响应事件。

关注 4 回答 1

kmxz 回答了问题 · 2016-07-13

解决apt和apt-get的区别是什么?

https://debian-handbook.info/browse/stable/sect.apt-get.html

我感觉实际体验上 apt > apt-get > aptitude

关注 5 回答 4

kmxz 关注了问题 · 2016-07-13

解决apt和apt-get的区别是什么?

rttttttttttt

关注 5 回答 4

kmxz 回答了问题 · 2016-07-13

react语法中的...三个点要怎样理解

关注 4 回答 2

kmxz 关注了问题 · 2016-07-13

react语法中的...三个点要怎样理解

初学者,对 {...this.props} 这句很难理解

关注 4 回答 2

kmxz 关注了问题 · 2016-07-12

Android app中准备接入地图sdk,百度VS高德哪个好一点?

app中需要用到地图的功能比较简单,主要是在地图上展示指定的位置坐标点,在该点上绘制图标并且可以点击弹窗即可,想问下百度和高德地图哪个好一点?希望有过实际项目经验的可以分享下经历

关注 14 回答 9

kmxz 回答了问题 · 2016-07-12

Android app中准备接入地图sdk,百度VS高德哪个好一点?

Google Maps >> 高德 > 百度

关注 14 回答 9

kmxz 关注了问题 · 2016-07-12

解决`obj.prototype` 和 `Object.getPrototypeOf(obj)` 的结果为什么不相同

我有这样的代码

'use strict';
let log = console.log;

let cParent = function () {
  this.property1 = arguments[0] || null;
  this.property2 = arguments[1] || null;
  this.log = function () {
    log('log: ', this.property1);
  }
};

let obj1 = new cParent(4, 5);
log(obj1.prototype);
log(Object.getPrototypeOf(obj1));
log(cParent.prototype);
log(Object.getPrototypeOf(cParent));

得到的结果是

undefined
{}
{}
[Function]

关注 7 回答 4

kmxz 回答了问题 · 2016-07-12

解决`obj.prototype` 和 `Object.getPrototypeOf(obj)` 的结果为什么不相同

obj.__prototype__Object.getPrototypeOf(obj) 的结果才会相同。而他们通常又与 obj.constructor.prototype 相同。

在你的例子中,也就是 cParent.prototype === obj1.__proto__cParent.prototype === Object.getPrototypeOf(obj1)

关注 7 回答 4

kmxz 关注了问题 · 2016-07-09

如果通过贝塞尔曲线计算缓冲运动中物体各个阶段的属性值呢?

我想通过js使用贝塞尔曲线计算缓冲运动中物体各个阶段的属性值。
好像是通过贝塞尔曲线的斜率来计算物体运动变化的属性值, 但是具体要怎么计算呢???

关注 2 回答 1

kmxz 回答了问题 · 2016-07-01

按位“与”、“或”、“异或”运算的使用场景有什么?

  • Bitmask, bitmap, etc.

  • Binary format processing (e.g. TCP header)

  • Cryptography

关注 8 回答 6

kmxz 回答了问题 · 2016-07-01

解决js如何动态设置iframe高度宽度?

CSS calc

关注 3 回答 2

kmxz 回答了问题 · 2016-07-01

解决js es6 proxy 对象调用问题?

apply 只能拦截对 proxy 本身的调用,不能拦截对 proxy 下面的方法的调用:

This trap can intercept these operations:

  • proxy(...args)

  • Function.prototype.apply() and Function.prototype.call()

  • Reflect.apply()

via https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/apply

你仔细想想 JavaScript 这种「函数为一等公民」的设计,就会发现这样是有道理的。

不过,你可以这么 workaround:

var twice = {
    get (target, property, receiver) {
        return () => (Reflect.apply(target[property], target, arguments) * 2);
    }
};

var sum = {
    ss () {
        console.log("sum ss()");
        return 200;
    }
};

var proxy = new Proxy(sum, twice);
proxy.ss();

关注 3 回答 2

kmxz 回答了问题 · 2016-07-01

解决数组方法fill():[].fill.call({ length: 3 }, 4);

首先,我 assume 你知道 Array.prototype.call 是什么意思。

我可以这么实现 myFill

Array.prototype.myFill = function (content) {
    var i;
    for (i = 0; i < this.length; i++) {
        this[i] = content;
    }
    return this;
};

然后你会发现它的行为和 fill 是一样的:

[1, 2, 3].myFill(4); // [4, 4, 4]
[].myFill.call({ length: 3 }, 4); // {0: 4, 1: 4, 2: 4, length: 3}

所以说明原本的 Array.prototype.fill 采取的就是类似的实现。

那么为什么要那么实现呢?因为这么实现的话,Array.prototype 里面的方法就不止可以用到 Array 实例上,也可以用到其它 array-like 对象上,比如 NodeListHTMLCollection 等,即使那些类没有实现类似的方法——只要那些类实现了 length 属性就行。

举例:document.getElemenetsByTagName('div') 返回一个 HTMLCollection 对象,而那个对象是没有 forEach 方法的。于是 document.getElementsByTagName('div').forEach 是不存在的。

但是 HTMLCollection 对象有 length 属性。于是我就可以 [].forEach.call(document.getElementsByTagName('div'), function (el) { el.style.background = '#F00'; });。而这之所以能实现,就是因为 Array.prototype.forEach 的实现类似于:

Array.prototype.myForEach = function (callback) {
    var i;
    for (i = 0; i < this.length; i++) {
        callback(this[i]);
    }
};

关注 2 回答 1

kmxz 回答了问题 · 2016-07-01

解决求 bootstrap3.3.5版 覆盖原版css样式的公共样式文件

关注 2 回答 1