推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
duola

请教一个简单的 js 问题。

  •  1
     
  •   duola · May 25, 2019 · 5562 views
    This topic created in 2556 days ago, the information mentioned may be changed or developed.

    在这里麻烦大家了,谢谢!

    16 replies    2019-11-24 22:42:38 +08:00
    Luoheqp
        1
    Luoheqp  
       May 25, 2019
    难道 return 不能解决么?执行的时候前面放个变量接收就好了
    wyongjian
        2
    wyongjian  
       May 25, 2019
    在 tmp_md5 = spark.end()前面加个 return 变成 return tmp_md5 = spark.end()
    uilvn
        3
    uilvn  
       May 25, 2019
    这个函数会异步读取文件,可以用类似
    return new Promise((resolve, reject) => {
    ...
    resolve(tmp_md5)
    })
    的方法做
    jc89898
        4
    jc89898  
       May 25, 2019
    Promise
    Biwood
        5
    Biwood  
       May 25, 2019
    由于是 File ​ Reader ​.read ​ AsArray ​ Buffer 是一个异步操作,所以需要用到回调函数:

    get_filemd5sum(ofile, callback) {
    ...
    tmp_md5 = spark.end();
    callback(temp_md5);
    ...
    }

    或者用 Promise 也行,方法如 3 楼
    kinghly
        6
    kinghly  
       May 25, 2019
    你的 tmp_md5 是全局变量来的。
    supuwoerc
        7
    supuwoerc  
       May 25, 2019
    这是异步操作,像楼上说的用 promise+then 写吧

    promise 对象: http://es6.ruanyifeng.com/#docs/promise
    BreezeInWind
        8
    BreezeInWind  
       May 25, 2019 via Android
    async await 也可以,不过注意兼容性
    jin5354
        9
    jin5354  
       May 25, 2019
    异步操作,promise 包一下吧
    duola
        10
    duola  
    OP
       May 25, 2019
    @Luoheqp @wyongjian
    函数异步读取文件,return 不了值。
    感谢两位回复。
    duola
        11
    duola  
    OP
       May 25, 2019
    @uilvn 非常感谢,我用了你的方法可以取得到值。
    @jc89898 谢谢你的关键字,我了解一下。
    @Biwood 非常感谢,我也试也你的办法,也是可以的。
    @supuwoerc 非常感谢,我好好看一下。
    @hedamao9999 谢谢提醒。
    @jin5354 感谢回复,

    问题已经得到解决,非常感谢各位!

    总结:是自己对 JavaScript 了解得太少了,得加强学习。
    lzvezr
        12
    lzvezr  
       May 25, 2019 via iPhone
    用 promise 包装一下,然后直接上 async/await 就非常爽
    ochatokori
        13
    ochatokori  
       May 25, 2019 via Android
    要么 callback, 要么 promise
    我初学的时候也被这个问题困扰哈哈,异步的结果 return 不出去。。。
    chenjunyue520
        14
    chenjunyue520  
       May 26, 2019
    callback 进去吧。
    chenhui7373
        15
    chenhui7373  
       Nov 24, 2019
    @duola 你好 能帮个忙吗
    chenhui7373
        16
    chenhui7373  
       Nov 24, 2019
    能不能转让下 《程序员聊设计》这本书
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1010 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 22:58 · PVG 06:58 · LAX 15:58 · JFK 18:58
    ♥ Do have faith in what you're doing.