15/06/2026
ฟีเจอร์ **“Calling Link nodes from the Function node”** ที่เพิ่มเข้ามาใน Node-RED 5 เป็นการยกระดับความสามารถของ **Function node** ให้สามารถสื่อสารกับ **Link node** ได้โดยตรงครับ 🎯
---
# # 🔎 ก่อนหน้านี้ (Node-RED 4)
- **Link node** ใช้สำหรับเชื่อมโยง flow ระหว่าง tab หรือส่วนต่าง ๆ ของ workspace
- การส่งข้อความไปยัง Link node ต้องทำผ่านการเชื่อมต่อสาย (wires) เท่านั้น
- Function node ไม่สามารถเรียกใช้ Link node โดยตรงจากโค้ด
---
# # 🚀 ใน Node-RED 5
- เพิ่ม API ใหม่ใน Function node:
```js
node.linkcall("ชื่อ-link-node", msg)
```
- สามารถ **เรียกใช้ Link node โดยตรงจากโค้ด** และรอรับ response กลับมาได้
- ทำให้ Function node ทำงานเหมือนเป็น **caller** ที่ส่งข้อความไปยัง Link node และรับผลลัพธ์กลับมา
---
# # 📌 ประโยชน์ที่ได้
- **ลดการลากสาย (wiring clutter)** → flow ดูสะอาดขึ้น
- **สร้างโครงสร้าง modular** → แยก logic ออกเป็นส่วน ๆ แล้วเรียกใช้ผ่าน Link node
- **รองรับการทำงานแบบ async** → Function node สามารถรอผลลัพธ์จาก Link node ได้เหมือนการเรียกฟังก์ชัน
- **เพิ่มความยืดหยุ่น** → ใช้ Link node เป็น “service” ที่ Function node เรียกใช้เมื่อจำเป็น
---
# # 🛠️ ตัวอย่างการใช้งาน
```js
// ภายใน Function node
let result = await node.linkcall("processData", {payload: 123});
msg.payload = result;
return msg;
```
- `processData` คือชื่อของ Link node ที่ตั้งไว้
- ส่ง `{payload: 123}` ไปยัง Link node
- รอผลลัพธ์กลับมาแล้วนำไปใช้ต่อใน flow
---
สรุป: ฟีเจอร์นี้ทำให้ **Link node กลายเป็นเหมือน “microservice” ภายใน Node-RED** ที่ Function node สามารถเรียกใช้ได้โดยตรง ไม่ต้องพึ่งสายเชื่อมต่ออีกต่อไปครับ ✨