-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
承诺本质上是异步的。 –