如何解决扑扑的未来(飞镖)?

时间:2020-03-21 21:15:21

标签: flutter dart

我想编写一个函数,直到上传完成后才返回。如果可以的话,我还可以添加一个超时时间。

 waitForUpload() async {
     uploader.result.listen((result) {
        // return waitForUpload
     }
 }

我只是找不到如何用dart编写代码。更清楚地说:在JS中,代码如下:

async waitForUpload() {
  return new Promise((resolve) => {
    uploader.result.listen((result) {
        resolve();
    });
  });
} 

1 个答案:

答案 0 :(得分:2)

Stream.single实现了我想要的行为。查看implmentation,您会发现future._complete(result);方法在解决未来的listen内部被调用。