当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript react-native-fs.downloadFile函数代码示例

本文整理汇总了TypeScript中react-native-fs.downloadFile函数的典型用法代码示例。如果您正苦于以下问题:TypeScript downloadFile函数的具体用法?TypeScript downloadFile怎么用?TypeScript downloadFile使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了downloadFile函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: eventChannel

 return eventChannel((emit) => {
   const toFile = `${FILES_FOLDER}/${track.id}.mp3`
   RNFS.downloadFile({
     fromUrl: track.mp3Url,
     toFile,
     background: true,
     begin ({ jobId }) {
       currentDownloadJob.jobId = jobId
       currentDownloadJob.trackId = track.id
     },
     progress ({ contentLength, bytesWritten }) {
       emit(downloadProgress({
         total: streamLength(contentLength),
         receive: streamLength(bytesWritten),
         id: track.id
       }))
     }
   }).promise.then((_) => {
     currentDownloadJob = Object.create(null)
     emit(removeDownloadingItem(track.id))
     emit(downloadSuccess({
       ...track,
       mp3Url: toFile
     }))
     emit(END)
   }).catch((err: Error) => {
     currentDownloadJob = Object.create(null)
     if (!err.message.includes('abort')) {
       emit(downloadFailed(track))
       emit(toastAction('error', `下载 ${track.name} 出现错误`))
     }
     emit(END)
   })
   return () => ({})
 })
开发者ID:czb128abc,项目名称:gouqi,代码行数:35,代码来源:download.ts

示例2: Promise

  return new Promise((resolve, reject) => {
    // get a temp path
    let downloadSessionId = Math.round(10000 + Math.random() * 1e5).toString(36);
    let tempFilename = downloadSessionId + '.tmp';
    let tempPath = FileUtil.getPath(tempFilename);
    tempPath = 'file://' + tempPath.replace("file://","");
    targetPath = 'file://' + targetPath.replace("file://","");

    LOGi.cloud('CloudCore:DownloadFile: ',downloadSessionId,'download requesting from URL:', url, 'temp:', tempPath, 'target:', targetPath);


    // download the file.
    RNFS.downloadFile({
      fromUrl: url,
      toFile: tempPath,
      begin: callbacks.begin,
      progress: callbacks.progress
    }).promise
      .then((status) => {
        if (status.statusCode !== 200) {
          // remove the temp file if the download failed
          FileUtil.safeDeleteFile(tempPath)
            .then(() => {
              LOGi.cloud('CloudCore:DownloadFile:',downloadSessionId,' Download was not status 200:', status);
              callbacks.success();
              resolve(null);
            })
            .catch((err) => { LOGe.cloud("CloudCore:DownloadFile:",downloadSessionId," Could not delete file", tempPath, ' err:', err); });
        }
        else {
          FileUtil.safeMoveFile(tempPath, targetPath)
            .then((toPath) => {
              // if we have renamed the file, we resolve the promise so we can store the changed filename.
              LOGi.cloud('CloudCore:DownloadFile:',downloadSessionId,' Downloaded file successfully:', targetPath);
              callbacks.success();
              resolve(toPath);
            })
            .catch((err) => {  LOGe.cloud("CloudCore:DownloadFile:",downloadSessionId," Could not move file", tempPath, ' to ', targetPath, 'err:', err); });
        }
      })
      .catch((err) => {
        LOGe.cloud("CloudCore:DownloadFile: ",downloadSessionId,"Could not download file err:", err);
        FileUtil.safeDeleteFile(tempPath).catch((err) => { LOGe.cloud("CloudCore:DownloadFile: ",downloadSessionId," Could not delete file", tempPath, 'err:', err); });
        reject(err);
      })
  });
开发者ID:crownstone,项目名称:CrownstoneApp,代码行数:46,代码来源:cloudCore.ts

示例3:

      console.log('FILES UPLOADED!'); // response.statusCode, response.headers, response.body
    } else {
      console.log('SERVER ERROR');
    }
  })
  .catch((err) => {
    if (err.description === "cancelled") {
      // cancelled by user
    }
    console.log(err);
  });

const downloadProgress: RNFS.DownloadCallbackProgress = (result) => {
  result.bytesWritten === 0;
  result.contentLength > 10;
  result.jobId;
};

const downloadBegin: RNFS.DownloadCallbackBegin = (result) => {
  result.headers === {};
};

RNFS.downloadFile({
  fromUrl: 'http://.txt',
  toFile: 'file.txt',
  begin: downloadBegin,
  progress: downloadProgress
}).promise.then((response) => {
  response.statusCode === 200;
});
开发者ID:Crevil,项目名称:DefinitelyTyped,代码行数:30,代码来源:react-native-fs-tests.ts


注:本文中的react-native-fs.downloadFile函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。