recherche

Maison  >  Questions et réponses  >  le corps du texte

node.js renvoie-t-il des objets de promesse au lieu de données via module.exprots ?

data.js

var http=require('http');
function runAsync(){
    var p = new Promise(function(resolve, reject){
        //做一些异步操作
         var json = '';
         http.get('http://localhost:8080/getJson?', function (res) {
        res.on('data', function (data) {
        json += data;
        }).on('end',function (){
            json = JSON.parse(json);
            resolve(json);
             })
        }).on('error', function (e) {
    console.error(e);
    });
       
    });  
        return p;
}
**module.exports=runAsync().then(function(data){
    console.log(data);
    return data;
});**//注意这句,我明明返回的是runasync.then(。。。。)为什么他给我返回了runasync()

index.js

var express = require('express');
var router = express.Router();
var getdata=require('../serve/data.js');
/* GET home page. */
router.get('/', function(req, res, next) {
    //var a=JSON.parse(getdata);
    console.log(getdata);
    res.render('index',{title:getdata.total});
});

module.exports = router;

Résultat :

習慣沉默習慣沉默2843 Il y a quelques jours499

répondre à tous(2)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:25:03

    Promise.prototype.then()

    Tout ce qui est renvoyé est un autre objet Promise. Le paramètre accepté par la méthode then() est la fonction de rappel. Vous ne pouvez contrôler que la valeur de retour de la fonction de rappel, pas la valeur de retour de la méthode then(). Il n'est pas pratique de taper sur un téléphone portable. Si vous avez des questions, attendez que je réponde sur l'ordinateur.

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:25:03

    var express = require('express');
    var router = express.Router();
    var data=require('../serve/data.js');
    /* GET home page. */
    router.get('/', function(req, res, next) {
        //var a=JSON.parse(getdata);
        data.then(function(data){
            console.log(data.total);
            res.render('index',{title:data.total});
        });
        
    
    });
    
    module.exports = router;

    Écris-le comme ça

    répondre
    0
  • Annulerrépondre