首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

请教一个简单的 js 问题。

  •  1
     
  •   duola · 171 天前 · 2345 次点击
    这是一个创建于 171 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    总结:是自己对 JavaScript 了解得太少了,得加强学习。
        12
    lzvezr   170 天前 via iPhone
    用 promise 包装一下,然后直接上 async/await 就非常爽
        13
    ochatokori   170 天前 via Android
    要么 callback, 要么 promise
    我初学的时候也被这个问题困扰哈哈,异步的结果 return 不出去。。。
        14
    chenjunyue520   170 天前
    callback 进去吧。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3782 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 01:15 · PVG 09:15 · LAX 17:15 · JFK 20:15
    ♥ Do have faith in what you're doing.