问题描述
是的,就这样吧,我是 JS 和 espruino 的新手,所以在一个项目中卡住了;我试图在 main 函数执行后立即获得一个数组的最大值为 console.logged:
const cw = 1;
const ccw = 0;
const dataCW = [];
const peekCW = [];
const dataccw = [];
const peekccw = [];
const dataLength = 36;
const getData = (dir,t,fn) => {
const solarIn = () => analogRead(A5);
const dataRead = () => ((solarIn() * 65536) * 5.0) / 65536;
const dataPush = (data) => {
data.push(dataRead());
};
const peekVal = (fnc) => {
if(dir === 1) {
for(let i = 0; i < dataLength; i++) {
setTimeout(() => {
dataPush(dataCW);
if(dataCW.length === dataLength) {
let peekValCW = Math.max.apply(null,dataCW);
let peekValPosCW = dataCW.indexOf(peekValCW);
peekCW.push(peekValPosCW);
}
},i * (t / dataLength));
}
}
else if(dir === 0) {
for(let i = 0; i < dataLength; i++) {
const forccw = setTimeout(() => {
dataPush(dataccw);
if(dataccw.length === dataLength) {
let peekValccw = Math.max.apply(null,dataccw);
let peekValPosccw = dataccw.indexOf(peekValccw);
peekccw.push(peekValPosccw);
}
},i * (t / dataLength));
}
}
fnc();
};
fn(peekVal,peekCW);
};
getData(cw,1000,(n,m) => n((m) => console.log(m)));
我觉得自己花了太多时间尝试自己,只对 undefined
或 = [ ]
之类的返回感到沮丧,因为在函数执行完成后我无法正确传递它。老实说,我只对涉及回调的解决方案感兴趣,我知道 espruino 现在已经实现了 Promise,但我觉得这需要通过回调来完成,因为我觉得这是一个需要了解/掌握的重要主题。谢谢你的帮助。
问候, 乔治 M.
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)