4

Android用のアプリを開発するためにnativescriptを使用しています。私は次のようなものを持っています

var fetchModule = require("fetch");
fetchModule.fetch("http://202.120.227.11/")
    .then(function(resp){
        console.log(JSON.stringify(resp));
        return resp;
    })
    .catch(function(err){
        console.log(JSON.stringify(err));
        return err;
    });

しかし、thenブロックは決して実行されません。また、catchブロックが実行されてネットワーク エラーが発生することもあります。しかし、どちらの場合でも、tcpdump の記録によると、リクエストは送信され、レスポンスはスムーズに受信されます。

そのため、何らかの理由でネイティブ スクリプトが応答をフィルター処理したようです。

誰もそれを経験したことがありますか?

4

2 に答える 2

5

respyourはResponseオブジェクトであることに注意してください。その内容を読みたい場合は、 arrayBufferblobformDatajson、またはtextのいずれかの関数を使用する必要があります。

これらの関数は、完了への応答を読み取り、読み取った値で解決される promise を返します。

例えば、

fetch("http://202.120.227.11/")
.then(function(resp){
  return resp.json();
})
.then(function(val) {
  console.log(JSON.stringify(val));
  return val;
});
于 2016-03-15T12:25:13.757 に答える