我尝试在完成上传视频后,将API(已上传的视频ID)async从API返回到我的代码。这是因为它返回undefined
。这是来自vzaar的API文档的工作代码。
api.uploadAndProcessVideo(videopath,
function (statusCode, data) {
return data.id;
}, {
title: "my video",
profile: 3
});
但是当我尝试将其包装在异步函数中时,我失败了。 应如何正确完成?
我没有运气就尝试了以下内容:
function getvideoid(videopath, callback) {
api.uploadAndProcessVideo(videopath, callback, {
title: "my video?",
profile: 3
});
};
var wrapped = Meteor.wrapAsync(getvideoid);
return wrapped(videopath);
编辑:与下面的代码稍微靠近,正确的ID现在显示在服务器控制台中,但仍然在客户端上返回undefined
。我必须亲近有人知道吗?
function getvideoid(videopath, callback) {
api.uploadAndProcessVideo(videopath, callback, {
title: "my video",
profile: 3
});
};
function status (statusCode, data) {
console.log(data.id);
return data.id;
}
var wrapped = Meteor.wrapAsync(getvideoid);
return wrapped(videopath, status);
答案 0 :(得分:0)
api.uploadAndProcessVideo是异步调用,您无法从异步回调中返回值。在这种情况下,您应该在传递给函数的回调中处理API响应。例如:
api.uploadAndProcessVideo(path, function(statusCode, data) {
if (statusCode === 200) {
var videoId = data.id;
doSomething(videoId);
}
})