Node.js从回调内部返回主循环

时间:2015-04-09 20:00:31

标签: javascript node.js

我有一个基于db数据创建对象的函数,以及一些基于web的json。

function makeObject(dbdata){

   var obj = {};
   obj.id = dbdata.id;
   obj.url = dbdata.url;

   request(dbdata.url,function(err,res,body){
      obj.inventory = JSON.parse(body).inventory;
   });

   return obj
}

这显然不会填写库存属性(异步等等),也不适用于返回内部请求。我知道答案非常基本,但我无法看到它。帮助,请!

1 个答案:

答案 0 :(得分:1)

您可以传入回调参数或返回承诺。 request必须返回承诺,或者您必须以某种方式宣传它。回调解决方案更容易实现。

function makeObject(dbdata, cb) {
    /* your codes */
    request(args, function (err, res, body) {
        obj.inventory = JSON.parse(body).inventory;
        cb(err, obj);
    });
}

然后你会像这样使用它

makeObject(dbdata, function (err, obj) {
    // handle err

    // do things with obj
});