我对异步/同步之间的区别感到有点困惑。一个小小的背景,我试图写一个程序,是使用回调和承诺。我试图创建嵌套请求,但是对象的值并没有传递这些请求,所以我创建了一个函数,该函数接受JS对象的输入,修改它,并返回js对象。修改将包括一个API调用,它查找要添加到JS对象中的另一个字段。
我能通过类似的方法来完成这个任务吗?
TEST1 function(....){
// do stuff
request.get(options, function(error, response, body) {
// do stuff to get js object
jsobject = objectModification(jsobject); //modified js object
});
}
objectModification function(jsobject) {
request.get(options, function(error, response, body) {
// do stuff to modify js object
});
return jsobject;
}
发布于 2016-07-13 18:21:34
您可以将回调函数传递给objectModification
,以便调用方在jsobject
的最终版本准备就绪时得到通知,以及它是什么:
function TEST1(....){
var options = { ... };
request.get(options, function(error, response, body) {
// do stuff to get js object, for example:
jsobject = response;
// modify jsobject asynchronously:
objectModification(jsobject, function (jsobject) {
// here we have the final version of jsobject.
});
});
}
function objectModification(jsobject, done) {
var options = { ... };
request.get(options, function(error, response, body) {
// do stuff to modify js object, for example:
jsobject.newProperty = response;
// Then call callback function to pass the modified js object
done(jsobject);
});
}
https://stackoverflow.com/questions/38340834
复制相似问题