技术解析

请教一个简单的 js 问题。
0
2021-08-31 00:23:57
idczone

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


难道 return 不能解决么?执行的时候前面放个变量接收就好了

在 tmp_md5 = spark.end()前面加个 return 变成 return tmp_md5 = spark.end()

这个函数会异步读取文件,可以用类似
return new Promise((resolve, reject) => {
...
resolve(tmp_md5)
})
的方法做

Promise

由于是 File ​ Reader ​.read ​ AsArray ​ Buffer 是一个异步操作,所以需要用到回调函数:
get_filemd5sum(ofile, callback) {
...
tmp_md5 = spark.end();
callback(temp_md5);
...
}
或者用 Promise 也行,方法如 3 楼

你的 tmp_md5 是全局变量来的。

这是异步操作,像楼上说的用 promise+then 写吧
promise 对象: http://es6.ruanyifeng.com/#docs/promise

async await 也可以,不过注意兼容性

异步操作,promise 包一下吧


函数异步读取文件,return 不了值。
感谢两位回复。

非常感谢,我用了你的方法可以取得到值。
谢谢你的关键字,我了解一下。
非常感谢,我也试也你的办法,也是可以的。
非常感谢,我好好看一下。
谢谢提醒。
感谢回复,
问题已经得到解决,非常感谢各位!
总结:是自己对 JavaScript 了解得太少了,得加强学习。

用 promise 包装一下,然后直接上 async/await 就非常爽

要么 callback, 要么 promise
我初学的时候也被这个问题困扰哈哈,异步的结果 return 不出去。。。

callback 进去吧。

你好 能帮个忙吗

能不能转让下 《程序员聊设计》这本书

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服