等待功能结果

时间:2016-03-05 12:05:53

标签: node.js sails.js

我应该如何重构此代码以正确等待_getWorkerId函数及其结果?

var EventsPersistancyService = {
  accept: function acceptService(msg) {

    function _getAppCategory() {
    }

    function _getWorkerId(user_sid, login) {
      Worker.findByLogin(login, function(res){

      });
    }

    var content = msg.content.toString();
    content = JSON.parse(content);
    content["app_category"] = _getAppCategory();
    content["worker_id"] = _getWorkerId();

    Event.create(content).then(function (x) {});
  }
}

1 个答案:

答案 0 :(得分:0)

添加回调函数作为第三个参数:

function _getWorkerId(user_sid, login, cb) {
    Worker.findByLogin(login, function(res){
        // here process data from res and create `response` variable
        // ...
        cb(response);
    });
}

然后你这样打电话给_getWorkerId

_getWorkerId(1, "login", function (response){
    content["worker_id"] = response;
});

就是这样。这是异步方法。