내가 이벤트 중심의 프로젝트 내에서 기다리고 비동기를 사용하기 위해 노력하고있어 나는 다음과 같은 오류를 얻고있다 Node.js를) :비동기 이벤트를 기다리는 동안 기다리고
const fs = require('fs');
const dash_button = require('node-dash-button');
const dash = dash_button(process.env.DASH_MAC, null, 1000, 'all');
function readFileAsync (path) {
return new Promise(function (resolve, reject) {
fs.readFile(path, function (error, result) {
if (error) {
reject(error);
} else {
resolve(result);
}
});
});
};
async function main() {
dash.on("detected", function() {
tmpFile = await readFileAsync('tmp.png');
console.log(tmpFile);
});
}
main();
내 문제는 아래의 라이브러리와 정말 것이 아니라 오히려 비동기로 기초를 기다리고 있습니다 이해 및 이벤트 구동 스크립트에서 그것을 사용. 이것이 범위 지정 문제인지 또는 다른 것이 아닌지 나는 꽤 이해하지 못합니다.
나는 아마존 대시 버튼에 대한 다음과 같은 이벤트 기반 라이브러리를 사용하고 있습니다 : await
요구
OP가'detected' 이벤트가 여러 번 시작될 것으로 예상하는 경우, 이것은 첫 번째 이벤트 만 올바르게 포착합니다. – JLRishe
@JLRishe 좋은 지적. node.js 사용 경험이 거의 없습니다. Mark_M의 접근 방식은이 경우 예상되는 결과를 제공해야합니다. – guest271314
함수 내부에서 중간 결과를 사용하지 않기 때문에'async/await'를 사용할 필요가 없습니다. '새로운 약속을 되 찾으십시오 (....)'충분합니다. – alexmac