返回新的承诺永不返回

时间:2018-08-21 08:13:05

标签: javascript node.js promise

我正在尝试在函数中使用 public void Login(string user, string pass) { this.Username = user; this.Userpassword = pass; // more code here } ,但是它永远不会返回。这是我的代码:

promise

查询有效,我可以在function getData(id) { return new Promise(function(resolve, reject) { DbUtil.connection.query("my query... ", [id], function (error, results, fields) { if (error) { reject(error); } else { resolve(results); } } ); }) } 块中看到其结果。但是函数本身不会返回。我尝试在else之后以及resolve函数本身之后添加return语句。但是它仍然不会返回。

我想念什么?

编辑:我怎么知道该函数不返回?因为

Promise

在上面的function main() { var data = getData(1); console.log("data returned? " + data); } 函数中,永远不会调用log语句。

1 个答案:

答案 0 :(得分:1)

这不是履行诺言的正确方法

尝试一下:

var data;
getData(1).then(function(d) {
  console.log(d);
  data = d;
});
// Since a Promise is async, you can't log data here 

async function main() {
  var data = await getData(1);
  console.log(data);
}

请注意,此示例不处理catch情况。