suchen

Heim  >  Fragen und Antworten  >  Hauptteil

node.js – So schreiben Sie den NodeJS-Rückruf zum Warten

Ich habe einen Code wie diesen


module.exports.AAA=function(){

    let request= test(function(){
        //一段异步代码
    });
    let data;
    
    request.on('data',function(data){})    
    request.on('end',function(){})
}

Wie rufe ich den obigen Code auf? AAA()的时候直接获取到data的值呢?如果是使用asyncawaitWie schreibe ich ihn?

漂亮男人漂亮男人2751 Tage vor690

Antworte allen(2)Ich werde antworten

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-17 09:59:09

    npm install bluebird --save
    const Promise = require('bluebird');
    module.exports.AAA=function(){
        return new Promise((resolve,reject)=>{
            let request= test(function(){
            //一段异步代码
            });
            request.on('data',resolve);    
            request.on('error',reject);
            request.on('end',function(){});
        });
    }
    (async function(){
      try{
         const response = await AAA();
         console.log(response);
      }catch(e){
        console.error(e);
      }
    })();

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-17 09:59:09

    foobar.js

    'use strict';
    
    function getDelayedData() {
        return new Promise(async resolve => {
            setTimeout(() => { resolve(+new Date); }, 1000);
        });
    }
    
    (async () => {
        let result = await getDelayedData();
        console.log('Got', result);  // missing error checking
    })();

    这里有一段代码参考一下。

    node --harmony-async-await foobar.js

    Antwort
    0
  • StornierenAntwort