我还在与异步和新秀等待,但是这是林与合作。
async function _getImageURLs(folder) {
if (!id) return;
foo.AWSS3Helper.GetImageUrls(so, function (imageUrls) {
return await imageUrls;
});
}
该机能的研究_getImageURLs()仍然返回,而无需等待AWSS3Helper.GetImageUrls完成。即时猜测它是与作为一个回调函数内。是否回调需要是异步呢?
使用等待在功能上没有return语句
async function _getImageURLs(folder) {
if (!id) return;
foo.AWSS3Helper.GetImageUrls(so, await function (imageUrls) {
return imageUrls;
});
}
至于我看到有没有承诺在这里,你对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
};
与观测试试吧。事情是这样的......
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'); }
});
}