【问题标题】:How to get data from URI in js in a synchronous way如何以同步方式从js中的URI获取数据
【发布时间】:2019-04-24 09:11:56
【问题描述】:

我正在尝试从 uri 获取数据。我使用的例子是:
https://jsonplaceholder.typicode.com/users/1
并尝试显示 id ("id" : "1")。
我必须将此值放入变量中,因为我也在使用 vuejs 模板。

有没有简单的方法来获取可爱的小数据?

我尝试了 Promises 和 XMLHttpRequest,但是 send() 抛出错误“fs.writeFileSync 不是函数”,并且我无法同步 Promises...

在导出 vuejs 模板之前有我的代码:

var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var fs = require('browserify-fs');
var xhr = new XMLHttpRequest();

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

/*function succes(msg){
  console.log('ok : '+msg);
  changeAffichage(msg);
}
function echec(msg){console.log('ko : '+msg); changeAffichage("error");}
function uri(){
  return fetch('https://jsonplaceholder.typicode.com/users/1')
    .then(function(response){
      return response.json()
      .then(function(value) {
        console.log('value : ');
        console.log(value);
        console.log('id = '+value.id);
        return value.id;
      }).catch(function(error) {
  console.log('Il y a eu un problème avec l\'opération fetch: ' + error.message);
});
    }).catch(function(error) {
  console.log('Il y a eu un problème avec l\'opération fetch: ' + error.message);
});
}*/
function changeAffichage(msg){
  window.affichage=msg;
  console.log("new affichage : "+window.affichage);
}
window.affichage="Meow";
//Promise.all([uri()]).then(succes, echec);

sleep(200);

xhr = new XMLHttpRequest();
xhr.open('GET', 'https://jsonplaceholder.typicode.com/users/1', false);
xhr.send(null);
if (xhr.status === 200) {
    console.log("Réponse reçue: %s", xhr.responseText);
} else {
    console.log("Status de la réponse: %d (%s)", xhr.status, xhr.statusText);
}
changeAffichage(xhr.responseText);

console.log('affichage final = ' + window.affichage);

我想把id的值放到window.affichage中,拜托:(

【问题讨论】:

  • 你能解释一下这里使用的 vue 标签是什么吗?现在对我来说似乎是普通的 JS。
  • 我使用 vuejs 标签,因为它对我来说是一个很大的限制。我用的是vuejs模板但是不懂所以不能用复杂的东西,只有一个可用

标签: javascript vue.js uri


【解决方案1】:

我不明白这里使用 Vue 的目的是什么,但是如果你想发出一个 http 请求,你可以使用 vue-axios 包来完成,并将你的 http 请求的结果分配给响应式属性

【讨论】:

  • 我们要求我使用这个 vuejs 模板,即使我从未听说过 vuejs。我找到了在哪里放置我的值来显示它,但它位于值数组的中间,所以我不会将我的请求放在值旁边 ^^
【解决方案2】:

所以,我找到了方法:

var request = require('sync-request');
var res = request('POST', 'http://MyAPIIP/connect?mail='+this.model.email+'&pass='+this.model.password);
reponse = String(JSON.parse(res.body)[0]['rep']);
console.log(reponse);

【讨论】:

    猜你喜欢
    • 2016-10-26
    • 2017-04-14
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    相关资源
    最近更新 更多