HTTPネットワークライブラリは、高速なアプリケーションをサポートしています-flyio

Fly.jsベースの約束、強力は、JavaScriptのランタイムライブラリの複数のHTTPリクエストをサポートしています。これを使うと、ブラウザでhttpリクエストコードを使用することができ、マイクロチャネルアプレットは、Weexは、ノードは、ネイティブ、高速で反応しアプリケーションが正常に機能しています。同時に、簡単なフロントエンドのフレームワークで主流の、最大の可能性を達成するためにどこでも実行追記本論文では、高速アプリケーションでflyio使用する方法について説明します。

Githubの:https://github.com/wendux/fly

高速なアプリケーションをサポートしています

アプリケーションが共同で立ち上げた応用生態学のための新しいハードウェアプラットフォームに基づいて迅速9携帯電話メーカーです。ユーザーがダウンロードしてインストール、クリックするネイティブアプリケーションのパフォーマンス体験を楽しむために必要はありません。迅速なアプリケーション開発の高速アプリケーションをサポートする初めてのJavaScript言語の開発、flyio公式を使用して、ウェブテクノロジ・スタックを使用しました。以下の文書の特定の使用を参照します。

標準API

上位層は、ネットワーク、プラットフォームアダプタに対応し、異なるプラットフォーム、シールド底プラットフォームの違い、異なるプラットフォームの使用を送信された要求と同様に、それぞれの環境でJavaScriptにあなたをできるように、標準のAPIを提供してフライのみ各フライで軽量プラットフォーム(ない冗長コード)を確保、正確にこのために、プラットフォームflyio NPMパッケージに対応するファイルエントリを導入する必要があります。

一方、axiosのユーザーの移行を容易にするために、APIの設計スタイルと(同じではありません)と類似axiosをfly.js!

Fly.jsはマルチ環境サポートを実装するために、異なる基礎となるJavaScriptランタイム別のHTTPエンジンによって通じ切り替えが、同時に、統一されたユーザー層、標準約束のAPIを提供します。それだけでなく、Fly.jsはまた、要求/応答ブロッカー、JSONの自動変換をサポートして転送し、他の機能を要求する、を参照してください。https://github.com/wendux/fly

これは、プラットフォームをサポートしてきました

Fly.js現在サポートされているプラットフォームは、次のとおりのNode.jsマイクロチャネルアプレットweexネイティブに反応しクイックアプリケーションとブラウザは、これらのプラットフォームは、異なるJavaScriptのランタイムがあります。プラットフォームは、ご期待くださいさらに追加し続けています。

例を使用するのは簡単フライ

導入の高速アプリケーション

では、高速アプリケーションの使用、高速なアプリケーションに依存するfetchモジュールは、必要性はmanifest.json参照を追加します。

  "features": [
     ...
    {"name": "system.fetch"}
  ]

その後、インスタンスが飛ぶ作成

 //依赖快应用中的fetch模块,需要在
 var fetch = require("@system.fetch")
 var Fly=require("flyio/dist/npm/hap") var fly=new Fly(fetch) 

次は、フライを使用することができます!次の例では特に断りのない限り、すべてのサポートされるプラットフォームの下で実行することができます。

GETリクエスト


//通过用户id获取信息,参数直接写在url中
fly.get('/user?id=133')
  .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); //query参数通过对象传递 fly.get('/user', { id: 133 }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 

POSTリクエストが開始します

fly.post('/user', {
    name: 'Doris',
    age: 24 phone:"18513222525" }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 

複数の同時要求を開始

function getUserRecords() {
  return fly.get('/user/133/records'); } function getUserProjects() { return fly.get('/user/133/projects'); } fly.all([getUserRecords(), getUserProjects()]) .then(fly.spread(function (records, projects) { //两个请求都完成 })) .catch(function(error){ console.log(error) }) 

グローバルコンフィギュレーション

構成支持フライインスタンスレベルの設定単一の構成要求を、インスタンス・レベルの配置は現在のフライインスタンスによって開始されたすべての要求のために使用することができる、など。

//定义公共headers
fly.config.headers={xx:5,bb:6,dd:7} //设置超时 fly.config.timeout=10000; //设置请求基地址 fly.config.baseURL="https://wendux.github.io/" 

シングル要求の構成は、回ときの要求に対してのみ有効です。

fly.request("/test",{hh:5},{
    method:"post", timeout:5000 //本次请求超时设置为5s }) 

迎撃機

サポート要求/応答インターセプタを飛ぶ、それは要求を開始する前に前処理に対する応答を受信した後、いくつかのデータを行うことができます。


//添加请求拦截器
fly.interceptors.request.use((request)=>{
    //给所有请求添加自定义header
    request.headers["X-Tag"]="flyio"; //打印出请求体 console.log(request.body) //终止请求 //var err=new Error("xxx") //err.request=request //return Promise.reject(new Error("")) //可以显式返回request, 也可以不返回,没有返回值时拦截器中默认返回request return request; }) //添加响应拦截器,响应拦截器会在then/catch处理之前执行 fly.interceptors.response.use( (response) => { //只将请求结果的data字段返回 return response.data }, (err) => { //发生网络错误后会走到这里 //return Promise.resolve("ssss") } ) 

過剰使用、これらに加えて、Fly.jsは、他の多くの強力な機能があり、会場くださいFly.jsを

アプリにぶら下がっフライインスタンス

フライアプリインスタンスに掛かった後、あなたは簡単に世界的に使用することができ、それはあなたがこれを行うことができない、唯一のお勧めです。

  var fetch = require("@system.fetch")
  var Fly=require("flyio/dist/npm/hap") var fly=new Fly(fetch) fly.config.baseURL = 'http://www.dtworkroom.com/doris/1/2.0.0/' export default { showMenu: util.showMenu, createShortcut: util.createShortcut, onCreate(){ this.$http=fly; } } 

そして、あなたはすべてのページで使用することができます。

this.$app.$http.post("test").then((d)=>{
    this.data=d.data; //console.log(JSON.stringify(d)) })

 

おすすめ

転載: www.cnblogs.com/blogsaspx/p/11291387.html