-1
我想使用節點承諾創建一個同步調用的序列,以便可以返回給調用者的結果。節點承諾沒有同步執行
我的代碼如下所示。
console.log("Call Outer HubTest");
var outerConnection;
var ret = mysql.createConnection({
host : 'localhost',
port : '3306',
user : 'MyUser',
password : 'MyPwd',
database : 'MyDb'
}).then(function (conn) {
console.log("OuterhubTest: Set Connection to "+conn);
outerConnection = conn;
}).then(function (result) {
console.log("OuterhubTest: Connection is"+outerConnection);
return outerConnection.query("SELECT 1");
}).then(function (rows) {
console.log("OuterhubTest: Rows of length "+rows.length);
}).catch(function (err) { console.log("Error was "+err)})
console.log("After OuterhubTest");
我的跡線意味着鏈正在異步調用: -
Call Outer HubTest
After OuterhubTest
OuterhubTest: Set Connection to [object Object]
OuterhubTest: Connection is[object Object]
OuterhubTest: Rows of length 1
如果這是同步的,我本來期望一直都OuterhubTest跟蹤「後OuterhubTest」之前。我不確定我做錯了什麼。 在此先感謝
承諾不會使異步代碼同步。 – robertklep
承諾本質上是異步的。 –