ฉันมีฟังก์ชั่นง่าย ๆ ที่มีลักษณะดังนี้:
function(query) {
myApi.exec('SomeCommand', function(response) {
return response;
});
}
โดยทั่วไปฉันต้องการให้โทรmyApi.exec
และกลับคำตอบที่ได้รับในแลมบ์ดาโทรกลับ อย่างไรก็ตามรหัสข้างต้นใช้งานไม่ได้และจะส่งคืนทันที
เพียงเพื่อความพยายามแฮ็คมากฉันลองด้านล่างซึ่งไม่ได้ผล แต่อย่างน้อยคุณก็เข้าใจว่าฉันพยายามทำอะไรให้สำเร็จ:
function(query) {
var r;
myApi.exec('SomeCommand', function(response) {
r = response;
});
while (!r) {}
return r;
}
โดยทั่วไปแล้วอะไรคือ 'node.js / event driven' ทางที่ดีในการดำเนินเรื่องนี้ ฉันต้องการให้ฟังก์ชั่นของฉันรอจนกว่าจะได้รับการติดต่อกลับแล้วส่งกลับค่าที่ส่งไปให้