https://jsfiddle.net/quangld/yoc45fo8/2/
Thêm ghi chú để cho dễ hiểu
https://jsfiddle.net/quangld/yoc45fo8/4/
Mình mới đọc về những thay đổi sắp tới của node, trong đó có đoạn nếu không catch rejection của promise thì sẽ nhận được thông báo:
(node:65526) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Something bad happened
(node:65526) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
đánh lệnh node <file.js>
C:\Users\User>node client.js
Callback function có thể hiểu tạm là chia việc ra làm;
Đoạn code trên trao nhiệm vụ cho readFile đọc nội dung file input.txt, với ghi chú là: khi chú đọc nội dung xong nhớ chạy function(err,data);
Sau khi trao nhiệm vụ cho readFile như thế, code chính tiếp tục làm việc kế của nó là thi hành lệnh console.log mà không đợi readFile.
Làm nhiều việc đồng thời vậy sẽ hiệu quả hơn. ReadFile trong máy thì nhanh, nhưng nếu bạn cần lấy file từ mạng xuống thì có thể sẽ đợi lâu. Bạn không muốn dừng tất cả công việc của mình ở đó mà đợi.
Watch Here: Polymer Summit 2016 Live Stream 1
Polymer là công cụ dùng để xây dựng web-components; Ngôn ngữ không gì khác hơn là javascript. Đây là nền tảng chính của Web trong những năm sắp tới. Trong khi NodeJS đứng phía sau để quản lý dữ liệu và là server, thì Polymer là công cụ dùng để xây dựng giao diện web
Nếu bạn đã xây dựng trang web, thì chắc bạn đã quen với những tags thông dụng như <input> <div> <span> .... Polymer sẽ giúp bạn xây dựng những tags (components) riêng web của bạn, hoặc dùng những gì người ta đã làm sẳn.
ví dụ: hiện nay polymer đã có sẳn components cho youtube và google-map. Muốn thêm youtube vào website của mình dùng polymer thì chỉ cần
<body>
<google-map latitude="37.77493" longitude="-122.41942" api-key="1234"></google-map>
<google-youtube video-id="_YFnfYJaqlA"></google-youtube>
</body>
Có thể tham khảo thêm về Polymer ở đây:
Polymer Project
Hướng dẫn build Polymer App
2 Websites của Google được xây dựng dùng Polymer
https://gaming.youtube.com/
https://play.google.com/music
bạn có ví dụ khác hông? Bởi vì trong trường hợp này: Array.map là synchronous function, cho nên nó chạy xong rồi thì cái res.json nó mới chạy
Nếu server không sửa được thời gian thì mình có thể tạm khắc phục bằng cách thay đổi function timeago của Nodebb.
Function này nằm trong public\vendor\jquery\timeago\jquery.timeago.js
parse: function (iso8601) {
var s = $.trim(iso8601);
....
// return new Date(s); // comment out bản gốc
// sửa lại thành
return new Date((new Date(s)).getTime() - 21600000); //6*60*60*1000
},
Có lẽ server bạn đang host chạy Windows, nên đồng hồ không dùng UnixTime và chạy trước UnixTime 6 tiếng. Nên bây giờ mình trừ ra
Mình mới post nhưng nó lại hiện đã post "6 hours ago". Trong User Profile thì hổng thấy phần nào cho chỉnh giờ.
Mình mới đọc về những thay đổi sắp tới của node, trong đó có đoạn nếu không catch rejection của promise thì sẽ nhận được thông báo:
(node:65526) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Something bad happened
(node:65526) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
@Truong-Lee159
Vậy bạn thử update lên bản mới nhất của PM2 xem.
npm install [email protected] -g
Theo như https://github.com/Unitech/pm2/issues/2413
Thì unhandledRejection từ promise sẽ không restart worker.
Nếu server không sửa được thời gian thì mình có thể tạm khắc phục bằng cách thay đổi function timeago của Nodebb.
Function này nằm trong public\vendor\jquery\timeago\jquery.timeago.js
parse: function (iso8601) {
var s = $.trim(iso8601);
....
// return new Date(s); // comment out bản gốc
// sửa lại thành
return new Date((new Date(s)).getTime() - 21600000); //6*60*60*1000
},
Có lẽ server bạn đang host chạy Windows, nên đồng hồ không dùng UnixTime và chạy trước UnixTime 6 tiếng. Nên bây giờ mình trừ ra
đánh lệnh node <file.js>
C:\Users\User>node client.js
Mình mới post nhưng nó lại hiện đã post "6 hours ago". Trong User Profile thì hổng thấy phần nào cho chỉnh giờ.
Callback function có thể hiểu tạm là chia việc ra làm;
Đoạn code trên trao nhiệm vụ cho readFile đọc nội dung file input.txt, với ghi chú là: khi chú đọc nội dung xong nhớ chạy function(err,data);
Sau khi trao nhiệm vụ cho readFile như thế, code chính tiếp tục làm việc kế của nó là thi hành lệnh console.log mà không đợi readFile.
Làm nhiều việc đồng thời vậy sẽ hiệu quả hơn. ReadFile trong máy thì nhanh, nhưng nếu bạn cần lấy file từ mạng xuống thì có thể sẽ đợi lâu. Bạn không muốn dừng tất cả công việc của mình ở đó mà đợi.
Nếu bạn dùng npm install -g hoặc npm install --global
Thì phải chạy với administrator permission.
Run cmd as administrator
vậy bạn thử thêm res.end() trước khi run setTimeout
Nếu taskFun không cần trả lại thông tin cho client thì bạn có thể dùng setTimeout để run TaskFun
if (_data) {
res.json({found: true})
setTimeout(taskFun,0)
} else {
res.status(400).end()
}