我有一个基于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
}
这显然不会填写库存属性(异步等等),也不适用于返回内部请求。我知道答案非常基本,但我无法看到它。帮助,请!
答案 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
});