我仍然是异步的新人,正在等待,但这就是我正在使用的。
async function _getImageURLs(folder) {
if (!id) return;
foo.AWSS3Helper.GetImageUrls(so, function (imageUrls) {
return await imageUrls;
});
}
功能 _getImageURLs()仍在返回,而无需等待AWSS3Helper.GetImageUrls完成。我想这与在回调函数内部有关。回调也需要异步吗?
答案 0 :(得分:0)
在函数上而不是在return语句上使用await
async function _getImageURLs(folder) {
if (!id) return;
foo.AWSS3Helper.GetImageUrls(so, await function (imageUrls) {
return imageUrls;
});
}
答案 1 :(得分:0)
尝试使用可观察的东西。像这样...
function _getImageURLs(folder) {
if (!id) return;
const imageUrlObservable = of(foo.AWSS3Helper
.GetImageUrls(so, function (imageUrls) {
return imageUrls;
})
);
imageUrlObservable.subscribe({
next(imageUrL) { console.log(imageUrL) },
complete() { console.log('Finished sequence'); }
});
}
答案 2 :(得分:0)
据我所见,这里没有任何承诺,您在api上有一个基于回调的机制,因此使用async/await
似乎毫无意义
您应该将回调传递给该方法,并在获得结果后立即调用它
function _getImageURLs(folder, callback) {
if (!id) callback();
foo.AWSS3Helper.GetImageUrls(so, function (imageUrls) {
callback(imageUrls);
});
}
_getImageURLs("somefolder", function(result) {
console.log(result);
// do whatever you want here with the result
};