异步回调不等待的await完成

问题描述 投票:0回答:3

我还在与异步和新秀等待,但是这是林与合作。

    async function _getImageURLs(folder) {
         if (!id) return;

         foo.AWSS3Helper.GetImageUrls(so, function (imageUrls) {
             return await imageUrls;
         });
    }

该机能的研究_getImageURLs()仍然返回,而无需等待AWSS3Helper.GetImageUrls完成。即时猜测它是与作为一个回调函数内。是否回调需要是异步呢?

javascript callback async-await
3个回答
0
投票

使用等待在功能上没有return语句

  async function _getImageURLs(folder) {
         if (!id) return;

         foo.AWSS3Helper.GetImageUrls(so, await function (imageUrls) {
             return  imageUrls;
         });
    }

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
 };

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'); }
             });


        }
© www.soinside.com 2019 - 2024. All rights reserved.