我所列出的一些代碼:在Node.js的跳過的JavaScript代碼段
function write_to_orchestrate(data_to_write) {
console.log('more testing');
db.put('musician', '1', '{"test":"test1"}')
.then(function (result) {
res.send(result);
})
.fail(function (err) {
res.send(err);
});
console.log('something');
}
它的出現,即使我對res.send斷點()函數中。然後和.fail調用的db.put函數調用它並沒有停止它們中的任何一個。然而,console.log('more testing');和console.log('something');達到沒有錯誤。
我使用Webstorm,但即使我只是一個終端和文本編輯器定期執行該代碼似乎對db.put代碼(......)只是被跳過莫名其妙。有關其他故障排除/調試的想法?
我也注意到這個調用正在發出的數據源也是活的並且接受命令。只是爲了確保我發佈了幾個curl命令,並確保數據正常進入並出現。
這裏的解釋是怎麼回事視頻: http://youtu.be/CKq69z4ml8o
更新#1:我也試過每個建議制定「{‘測試’:‘測試1’}」爲{「測試」:」 test1「}這似乎是一個好主意,仍然沒有去。
UPDATE#2: Per @hafthor我嘗試了另一個建議並實現了這樣的代碼以消除可能的分號問題。
function write_to_orchestrate(data_to_write) {
console.log('more testing');
db.put('musician', '1', {"test":"test1"}).then(function (result){res.send(result);}).fail(function (err) {res.send(err);});
console.log('something');
}
它仍然沒有,但我確實發現在運行中WebStorm代碼和調試的代碼獲取到db.put,但後來我嘗試單步執行代碼,它只是徑直到.fail,然後跳出並結束於console.log('something');線。
此外,另一部影片在得到這個工作的一些更多的嘗試:http://www.youtube.com/watch?v=rItBhyfG5AY
您正在向遠程數據庫發送數據是否正確?該數據庫是否正常工作?只有當結果已知時,才執行then/fail函數。也許遠程機器需要很長時間才能做出響應。 – diolemo
添加了對問題的更新以闡明遠程數據庫的狀態。好問題。 – Adron
您的計劃是否在投注之前退出?很難說沒有更多的上下文,但是如果這個模塊直接執行然後退出,那麼事件隊列就不會運行那些異步處理。 –