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

请教一个简单的 js 问题。

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

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

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

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

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

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

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

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