當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。