Skip to content

[备忘] 取消使用Promise代替 Callback 的方案 #3

@F-happy

Description

@F-happy

原因:

根据下面的代码测试在当前 node 的版本中效率相差太大,并且由于 electron 自身的通信机制也是基于 callback 的,所以改造起来也比较麻烦,所以放弃了这个计划。

测试代码:

/**
 * Created by fuhuixiang on 16/10/28.
 */
"use strict";

function testCallback(arg, cb) {
    for (let i = 0; i < 100; i++) {
        arg += arg;
    }
    cb(arg);
}

function testPromise(arg) {
    for (let i = 0; i < 100; i++) {
        arg += arg;
    }
    return new Promise((resolve, reject)=> {
            reject('err');
            resolve(arg);
    });
}

console.time('test');
let result = '';
for (let i = 0; i < 10000; i++) {
    testCallback(1, (data)=>{
        result += data;
    });

    // testPromise(1).then((data)=>{
    //     result += data;
    // }).catch((err)=>{});
}
console.timeEnd('test');

测试结果:

  • 当循环次数为1000次时:
    1000
  • 当循环ci's次数为10000次时:
    10000

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions